{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "\n",
    "def fxn():\n",
    "    warnings.warn(\"deprecated\", DeprecationWarning)\n",
    "\n",
    "with warnings.catch_warnings():\n",
    "    warnings.simplefilter(\"ignore\")\n",
    "    fxn()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "import tensorflow_probability as tfp\n",
    "import numpy as np\n",
    "import matplotlib.pylab as plt\n",
    "from matplotlib.pyplot import plot, ion, show, savefig, cla, figure\n",
    "import random\n",
    "import time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "os.environ[\"CUDA_DEVICE_ORDER\"]=\"PCI_BUS_ID\"   # see issue #152\n",
    "os.environ[\"CUDA_VISIBLE_DEVICES\"]=\"0\"\n",
    "\n",
    "import tensorflow as tf\n",
    "from data_loader import DataGenerator\n",
    "from models import VAEmodel, lstmKerasModel\n",
    "from trainers import vaeTrainer\n",
    "\n",
    "from utils import process_config, create_dirs, get_args"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-10-19 13:18:04.542013: I tensorflow/core/platform/cpu_feature_guard.cc:145] This TensorFlow binary is optimized with Intel(R) MKL-DNN to use the following CPU instructions in performance critical operations:  SSE4.1 SSE4.2 AVX AVX2 FMA\n",
      "To enable them in non-MKL-DNN operations, rebuild TensorFlow with the appropriate compiler flags.\n"
     ]
    }
   ],
   "source": [
    "from tensorflow.python.client import device_lib\n",
    "\n",
    "def get_available_gpus():\n",
    "    local_device_protos = device_lib.list_local_devices()\n",
    "    return [x.name for x in local_device_protos if x.device_type == 'GPU']\n",
    "\n",
    "print(get_available_gpus())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /var/folders/0g/yb4jvrmj2xd0lm1nfx1styjm000_kw/T/ipykernel_21954/2057951174.py:6: The name tf.Session is deprecated. Please use tf.compat.v1.Session instead.\n",
      "\n",
      "WARNING:tensorflow:From /var/folders/0g/yb4jvrmj2xd0lm1nfx1styjm000_kw/T/ipykernel_21954/2057951174.py:6: The name tf.ConfigProto is deprecated. Please use tf.compat.v1.ConfigProto instead.\n",
      "\n",
      "Device mapping:\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-10-19 13:18:04.558847: I tensorflow/core/common_runtime/process_util.cc:115] Creating new thread pool with default inter op setting: 8. Tune using inter_op_parallelism_threads for best performance.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /Users/ggraham/repos/VAE-LSTM-for-anomaly-detection/codes/base.py:62: The name tf.variable_scope is deprecated. Please use tf.compat.v1.variable_scope instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ggraham/repos/VAE-LSTM-for-anomaly-detection/codes/base.py:64: The name tf.assign is deprecated. Please use tf.compat.v1.assign instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ggraham/repos/VAE-LSTM-for-anomaly-detection/codes/models.py:25: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n",
      "\n",
      "WARNING:tensorflow:From /Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/python/data/util/random_seed.py:58: where (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.where in 2.0, which has the same broadcast rule as np.where\n",
      "WARNING:tensorflow:From /Users/ggraham/repos/VAE-LSTM-for-anomaly-detection/codes/models.py:31: DatasetV1.make_initializable_iterator (from tensorflow.python.data.ops.dataset_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use `for ... in dataset:` to iterate over a dataset. If using `tf.estimator`, return the `Dataset` object directly from your input function. As a last resort, you can use `tf.compat.v1.data.make_initializable_iterator(dataset)`.\n",
      "WARNING:tensorflow:\n",
      "The TensorFlow contrib module will not be included in TensorFlow 2.0.\n",
      "For more information, please see:\n",
      "  * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n",
      "  * https://github.com/tensorflow/addons\n",
      "  * https://github.com/tensorflow/io (for I/O related ops)\n",
      "If you depend on functionality not listed there, please file an issue.\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ERROR:root:Internal Python error in the inspect module.\n",
      "Below is the traceback from this internal error.\n",
      "\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3441, in run_code\n",
      "    exec(code_obj, self.user_global_ns, self.user_ns)\n",
      "  File \"/var/folders/0g/yb4jvrmj2xd0lm1nfx1styjm000_kw/T/ipykernel_21954/2057951174.py\", line 10, in <module>\n",
      "    model_vae = VAEmodel(config)\n",
      "  File \"/Users/ggraham/repos/VAE-LSTM-for-anomaly-detection/codes/models.py\", line 18, in __init__\n",
      "    self.build_model()\n",
      "  File \"/Users/ggraham/repos/VAE-LSTM-for-anomaly-detection/codes/models.py\", line 38, in build_model\n",
      "    init = tf.contrib.layers.xavier_initializer()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/python/util/lazy_loader.py\", line 63, in __getattr__\n",
      "    return getattr(module, item)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 50, in __getattr__\n",
      "    module = self._load()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 44, in _load\n",
      "    module = _importlib.import_module(self.__name__)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/importlib/__init__.py\", line 127, in import_module\n",
      "    return _bootstrap._gcd_import(name[level:], package, level)\n",
      "  File \"<frozen importlib._bootstrap>\", line 1006, in _gcd_import\n",
      "  File \"<frozen importlib._bootstrap>\", line 983, in _find_and_load\n",
      "  File \"<frozen importlib._bootstrap>\", line 967, in _find_and_load_unlocked\n",
      "  File \"<frozen importlib._bootstrap>\", line 677, in _load_unlocked\n",
      "  File \"<frozen importlib._bootstrap_external>\", line 728, in exec_module\n",
      "  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/contrib/__init__.py\", line 39, in <module>\n",
      "    from tensorflow.contrib import compiler\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/contrib/compiler/__init__.py\", line 21, in <module>\n",
      "    from tensorflow.contrib.compiler import jit\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/contrib/compiler/__init__.py\", line 22, in <module>\n",
      "    from tensorflow.contrib.compiler import xla\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/contrib/compiler/xla.py\", line 22, in <module>\n",
      "    from tensorflow.python.estimator import model_fn as model_fn_lib\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/python/estimator/model_fn.py\", line 26, in <module>\n",
      "    from tensorflow_estimator.python.estimator import model_fn\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/__init__.py\", line 10, in <module>\n",
      "    from tensorflow_estimator._api.v1 import estimator\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/_api/v1/estimator/__init__.py\", line 10, in <module>\n",
      "    from tensorflow_estimator._api.v1.estimator import experimental\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/_api/v1/estimator/experimental/__init__.py\", line 10, in <module>\n",
      "    from tensorflow_estimator.python.estimator.canned.dnn import dnn_logit_fn_builder\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/canned/dnn.py\", line 27, in <module>\n",
      "    from tensorflow_estimator.python.estimator import estimator\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py\", line 36, in <module>\n",
      "    from tensorflow.python.profiler import trace\n",
      "ImportError: cannot import name 'trace' from 'tensorflow.python.profiler' (/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/python/profiler/__init__.py)\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2061, in showtraceback\n",
      "    stb = value._render_traceback_()\n",
      "AttributeError: 'ImportError' object has no attribute '_render_traceback_'\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1101, in get_records\n",
      "    return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 248, in wrapped\n",
      "    return f(*args, **kwargs)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 281, in _fixed_getinnerframes\n",
      "    records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 1502, in getinnerframes\n",
      "    frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 1460, in getframeinfo\n",
      "    filename = getsourcefile(frame) or getfile(frame)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 696, in getsourcefile\n",
      "    if getattr(getmodule(object, filename), '__loader__', None) is not None:\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 733, in getmodule\n",
      "    if ismodule(module) and hasattr(module, '__file__'):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 50, in __getattr__\n",
      "    module = self._load()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 44, in _load\n",
      "    module = _importlib.import_module(self.__name__)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/importlib/__init__.py\", line 127, in import_module\n",
      "    return _bootstrap._gcd_import(name[level:], package, level)\n",
      "  File \"<frozen importlib._bootstrap>\", line 1006, in _gcd_import\n",
      "  File \"<frozen importlib._bootstrap>\", line 983, in _find_and_load\n",
      "  File \"<frozen importlib._bootstrap>\", line 965, in _find_and_load_unlocked\n",
      "ModuleNotFoundError: No module named 'tensorflow_core.estimator'\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ERROR:root:Internal Python error in the inspect module.\n",
      "Below is the traceback from this internal error.\n",
      "\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3441, in run_code\n",
      "    exec(code_obj, self.user_global_ns, self.user_ns)\n",
      "  File \"/var/folders/0g/yb4jvrmj2xd0lm1nfx1styjm000_kw/T/ipykernel_21954/2057951174.py\", line 10, in <module>\n",
      "    model_vae = VAEmodel(config)\n",
      "  File \"/Users/ggraham/repos/VAE-LSTM-for-anomaly-detection/codes/models.py\", line 18, in __init__\n",
      "    self.build_model()\n",
      "  File \"/Users/ggraham/repos/VAE-LSTM-for-anomaly-detection/codes/models.py\", line 38, in build_model\n",
      "    init = tf.contrib.layers.xavier_initializer()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/python/util/lazy_loader.py\", line 63, in __getattr__\n",
      "    return getattr(module, item)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 50, in __getattr__\n",
      "    module = self._load()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 44, in _load\n",
      "    module = _importlib.import_module(self.__name__)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/importlib/__init__.py\", line 127, in import_module\n",
      "    return _bootstrap._gcd_import(name[level:], package, level)\n",
      "  File \"<frozen importlib._bootstrap>\", line 1006, in _gcd_import\n",
      "  File \"<frozen importlib._bootstrap>\", line 983, in _find_and_load\n",
      "  File \"<frozen importlib._bootstrap>\", line 967, in _find_and_load_unlocked\n",
      "  File \"<frozen importlib._bootstrap>\", line 677, in _load_unlocked\n",
      "  File \"<frozen importlib._bootstrap_external>\", line 728, in exec_module\n",
      "  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/contrib/__init__.py\", line 39, in <module>\n",
      "    from tensorflow.contrib import compiler\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/contrib/compiler/__init__.py\", line 21, in <module>\n",
      "    from tensorflow.contrib.compiler import jit\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/contrib/compiler/__init__.py\", line 22, in <module>\n",
      "    from tensorflow.contrib.compiler import xla\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/contrib/compiler/xla.py\", line 22, in <module>\n",
      "    from tensorflow.python.estimator import model_fn as model_fn_lib\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/python/estimator/model_fn.py\", line 26, in <module>\n",
      "    from tensorflow_estimator.python.estimator import model_fn\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/__init__.py\", line 10, in <module>\n",
      "    from tensorflow_estimator._api.v1 import estimator\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/_api/v1/estimator/__init__.py\", line 10, in <module>\n",
      "    from tensorflow_estimator._api.v1.estimator import experimental\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/_api/v1/estimator/experimental/__init__.py\", line 10, in <module>\n",
      "    from tensorflow_estimator.python.estimator.canned.dnn import dnn_logit_fn_builder\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/canned/dnn.py\", line 27, in <module>\n",
      "    from tensorflow_estimator.python.estimator import estimator\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py\", line 36, in <module>\n",
      "    from tensorflow.python.profiler import trace\n",
      "ImportError: cannot import name 'trace' from 'tensorflow.python.profiler' (/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/python/profiler/__init__.py)\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2061, in showtraceback\n",
      "    stb = value._render_traceback_()\n",
      "AttributeError: 'ImportError' object has no attribute '_render_traceback_'\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3361, in run_ast_nodes\n",
      "    if (await self.run_code(code, result,  async_=asy)):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3458, in run_code\n",
      "    self.showtraceback(running_compiled_code=True)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2064, in showtraceback\n",
      "    value, tb, tb_offset=tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1368, in structured_traceback\n",
      "    self, etype, value, tb, tb_offset, number_of_lines_of_context)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1268, in structured_traceback\n",
      "    self, etype, value, tb, tb_offset, number_of_lines_of_context\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1125, in structured_traceback\n",
      "    tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1082, in format_exception_as_a_whole\n",
      "    last_unique, recursion_repeat = find_recursion(orig_etype, evalue, records)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 382, in find_recursion\n",
      "    return len(records), 0\n",
      "TypeError: object of type 'NoneType' has no len()\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2061, in showtraceback\n",
      "    stb = value._render_traceback_()\n",
      "AttributeError: 'TypeError' object has no attribute '_render_traceback_'\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1101, in get_records\n",
      "    return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 248, in wrapped\n",
      "    return f(*args, **kwargs)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 281, in _fixed_getinnerframes\n",
      "    records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 1502, in getinnerframes\n",
      "    frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 1460, in getframeinfo\n",
      "    filename = getsourcefile(frame) or getfile(frame)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 696, in getsourcefile\n",
      "    if getattr(getmodule(object, filename), '__loader__', None) is not None:\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 733, in getmodule\n",
      "    if ismodule(module) and hasattr(module, '__file__'):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 50, in __getattr__\n",
      "    module = self._load()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 44, in _load\n",
      "    module = _importlib.import_module(self.__name__)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/importlib/__init__.py\", line 127, in import_module\n",
      "    return _bootstrap._gcd_import(name[level:], package, level)\n",
      "  File \"<frozen importlib._bootstrap>\", line 1006, in _gcd_import\n",
      "  File \"<frozen importlib._bootstrap>\", line 983, in _find_and_load\n",
      "  File \"<frozen importlib._bootstrap>\", line 965, in _find_and_load_unlocked\n",
      "ModuleNotFoundError: No module named 'tensorflow_core.estimator'\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ERROR:root:Internal Python error in the inspect module.\n",
      "Below is the traceback from this internal error.\n",
      "\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3441, in run_code\n",
      "    exec(code_obj, self.user_global_ns, self.user_ns)\n",
      "  File \"/var/folders/0g/yb4jvrmj2xd0lm1nfx1styjm000_kw/T/ipykernel_21954/2057951174.py\", line 10, in <module>\n",
      "    model_vae = VAEmodel(config)\n",
      "  File \"/Users/ggraham/repos/VAE-LSTM-for-anomaly-detection/codes/models.py\", line 18, in __init__\n",
      "    self.build_model()\n",
      "  File \"/Users/ggraham/repos/VAE-LSTM-for-anomaly-detection/codes/models.py\", line 38, in build_model\n",
      "    init = tf.contrib.layers.xavier_initializer()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/python/util/lazy_loader.py\", line 63, in __getattr__\n",
      "    return getattr(module, item)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 50, in __getattr__\n",
      "    module = self._load()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 44, in _load\n",
      "    module = _importlib.import_module(self.__name__)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/importlib/__init__.py\", line 127, in import_module\n",
      "    return _bootstrap._gcd_import(name[level:], package, level)\n",
      "  File \"<frozen importlib._bootstrap>\", line 1006, in _gcd_import\n",
      "  File \"<frozen importlib._bootstrap>\", line 983, in _find_and_load\n",
      "  File \"<frozen importlib._bootstrap>\", line 967, in _find_and_load_unlocked\n",
      "  File \"<frozen importlib._bootstrap>\", line 677, in _load_unlocked\n",
      "  File \"<frozen importlib._bootstrap_external>\", line 728, in exec_module\n",
      "  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/contrib/__init__.py\", line 39, in <module>\n",
      "    from tensorflow.contrib import compiler\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/contrib/compiler/__init__.py\", line 21, in <module>\n",
      "    from tensorflow.contrib.compiler import jit\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/contrib/compiler/__init__.py\", line 22, in <module>\n",
      "    from tensorflow.contrib.compiler import xla\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/contrib/compiler/xla.py\", line 22, in <module>\n",
      "    from tensorflow.python.estimator import model_fn as model_fn_lib\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/python/estimator/model_fn.py\", line 26, in <module>\n",
      "    from tensorflow_estimator.python.estimator import model_fn\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/__init__.py\", line 10, in <module>\n",
      "    from tensorflow_estimator._api.v1 import estimator\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/_api/v1/estimator/__init__.py\", line 10, in <module>\n",
      "    from tensorflow_estimator._api.v1.estimator import experimental\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/_api/v1/estimator/experimental/__init__.py\", line 10, in <module>\n",
      "    from tensorflow_estimator.python.estimator.canned.dnn import dnn_logit_fn_builder\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/canned/dnn.py\", line 27, in <module>\n",
      "    from tensorflow_estimator.python.estimator import estimator\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py\", line 36, in <module>\n",
      "    from tensorflow.python.profiler import trace\n",
      "ImportError: cannot import name 'trace' from 'tensorflow.python.profiler' (/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow_core/python/profiler/__init__.py)\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2061, in showtraceback\n",
      "    stb = value._render_traceback_()\n",
      "AttributeError: 'ImportError' object has no attribute '_render_traceback_'\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3361, in run_ast_nodes\n",
      "    if (await self.run_code(code, result,  async_=asy)):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3458, in run_code\n",
      "    self.showtraceback(running_compiled_code=True)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2064, in showtraceback\n",
      "    value, tb, tb_offset=tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1368, in structured_traceback\n",
      "    self, etype, value, tb, tb_offset, number_of_lines_of_context)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1268, in structured_traceback\n",
      "    self, etype, value, tb, tb_offset, number_of_lines_of_context\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1125, in structured_traceback\n",
      "    tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1082, in format_exception_as_a_whole\n",
      "    last_unique, recursion_repeat = find_recursion(orig_etype, evalue, records)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 382, in find_recursion\n",
      "    return len(records), 0\n",
      "TypeError: object of type 'NoneType' has no len()\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2061, in showtraceback\n",
      "    stb = value._render_traceback_()\n",
      "AttributeError: 'TypeError' object has no attribute '_render_traceback_'\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2944, in _run_cell\n",
      "    return runner(coro)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/async_helpers.py\", line 68, in _pseudo_sync_runner\n",
      "    coro.send(None)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3170, in run_cell_async\n",
      "    interactivity=interactivity, compiler=compiler, result=result)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3380, in run_ast_nodes\n",
      "    self.showtraceback()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2064, in showtraceback\n",
      "    value, tb, tb_offset=tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1368, in structured_traceback\n",
      "    self, etype, value, tb, tb_offset, number_of_lines_of_context)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1268, in structured_traceback\n",
      "    self, etype, value, tb, tb_offset, number_of_lines_of_context\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1143, in structured_traceback\n",
      "    chained_exceptions_tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1082, in format_exception_as_a_whole\n",
      "    last_unique, recursion_repeat = find_recursion(orig_etype, evalue, records)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 382, in find_recursion\n",
      "    return len(records), 0\n",
      "TypeError: object of type 'NoneType' has no len()\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2061, in showtraceback\n",
      "    stb = value._render_traceback_()\n",
      "AttributeError: 'TypeError' object has no attribute '_render_traceback_'\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1101, in get_records\n",
      "    return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 248, in wrapped\n",
      "    return f(*args, **kwargs)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 281, in _fixed_getinnerframes\n",
      "    records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 1502, in getinnerframes\n",
      "    frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 1460, in getframeinfo\n",
      "    filename = getsourcefile(frame) or getfile(frame)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 696, in getsourcefile\n",
      "    if getattr(getmodule(object, filename), '__loader__', None) is not None:\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 733, in getmodule\n",
      "    if ismodule(module) and hasattr(module, '__file__'):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 50, in __getattr__\n",
      "    module = self._load()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 44, in _load\n",
      "    module = _importlib.import_module(self.__name__)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/importlib/__init__.py\", line 127, in import_module\n",
      "    return _bootstrap._gcd_import(name[level:], package, level)\n",
      "  File \"<frozen importlib._bootstrap>\", line 1006, in _gcd_import\n",
      "  File \"<frozen importlib._bootstrap>\", line 983, in _find_and_load\n",
      "  File \"<frozen importlib._bootstrap>\", line 965, in _find_and_load_unlocked\n",
      "ModuleNotFoundError: No module named 'tensorflow_core.estimator'\n"
     ]
    },
    {
     "data": {
      "image/png": "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t9+kv+efH99yJBJ0TwiCIAiCiCfUFyGccgo8M3379g0YHQDgtddew08//QQA2L17N7Zs2RJieGjZsiWysrIAAL169UJubq7pOQoKCrBw4UJcdtllgWWlpaUAgEGDBmHs2LG4/PLLcckll1iWd8CAAZgwYQL27NmDSy65BG3btsUff/yB5cuXo0+fPgCA4uJi1K9f3/Q4rVq1wvbt23HXXXdh1KhROOeccwLrrrrqKgDAkCFDcPLkSUfaFpFQqQwPJ04kY906MjwkPC+/LP2txJWU69A9IQiCIAginlBfhHBKBM+MmWdCfn5xzNJppqWlBb7n5ORg1qxZWLRoEapVq4bs7GyUlJSE7JOamhr47vV6LUMM/H4/MjIydD0P3nnnHSxZsgSTJ09GVlaW7jYiV199Nfr164fJkyfj3HPPxQcffADOOW644QY8//zz5hcrUKtWLaxatQrTp0/Hm2++iW+//RYfffQRAIBpQgi0/0eLhNB4cAKFWhAEQRAEQRAEQRAi6enpyM/PN1x/4sQJ1KpVC9WqVcPGjRuxePFiV85Vo0YNtGzZEt999x0AgHOOVatWAQC2bduGfv36Yfz48ahbty52795tWs7t27ejVatWuPvuu3HBBRdg9erVGD58OL7//nscOnQIAHDs2DHs3LkTAJCcnIzy8vKQ4xw5cgR+vx+XXnopnnnmGaxYsSKwTtGVmD9/PmrWrImaNWvaus5IqXSGB0+lKzFBEARBEARBEAQRTerUqYNBgwahS5cuePDBB0PWjxgxAhUVFejWrRsef/xx9O/fP+xzXXnllXjxxRfRo0cPbNu2DV9++SU+/PBDdO/eHZ07d8Yvv/wCAHjwwQfRtWtXdOnSBUOGDEH37t0xdOhQrF+/XldcctKkSejSpQuysrKwceNGXH/99ejUqROeffZZnHPOOejWrRvOPvts7N+/HwBwyy23oFu3biHiknv37kV2djaysrIwduxYlbdErVq1MHDgQNx222348MMPTa9z7NixuO2221wRl2Sc84gOEEsY683femsZbr893iUhTMnOlv7m5MSzFIlFJbwn2dmSEM3KlRnxLgpBnFbk5OQgW6kzCIKIOtF45xKy2U/IQhEJjcNnZsOGDejYsaPldvn5+TELtSDUZGdnuyYWqfd7M8aWc851D16p/AcY40hJiXcpCIIgCIIgCIIgCIKw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\n",
      "text/plain": [
       "<Figure size 1296x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# load VAE model\n",
    "config = process_config('NAB_config.json')\n",
    "# create the experiments dirs\n",
    "create_dirs([config['result_dir'], config['checkpoint_dir']])\n",
    "# create tensorflow session\n",
    "sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))\n",
    "# create your data generator\n",
    "data = DataGenerator(config)\n",
    "# create a CNN model\n",
    "model_vae = VAEmodel(config)\n",
    "# create a CNN model\n",
    "trainer_vae = vaeTrainer(sess, model_vae, data, config)\n",
    "model_vae.load(sess)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Finish processing the embeddings of the entire dataset.\n",
      "The first a few embeddings are\n",
      "[[-7.63018370e-01  1.75266087e+00  2.90866303e+00 -8.22637528e-02\n",
      "   4.95199084e-01  1.37856638e+00]\n",
      " [-5.76568469e-02 -6.18548952e-02  5.57208247e-02 -1.72741599e-02\n",
      "   9.25339609e-02 -5.74246883e-01]\n",
      " [-3.68950903e-01  6.54548705e-01 -1.52349329e+00 -1.61857858e-01\n",
      "  -7.01683015e-02  3.76645863e-01]\n",
      " [-3.08334902e-02 -2.01373816e-01  1.05614507e+00  1.72580406e-03\n",
      "   7.55314052e-01  3.04207444e-01]\n",
      " [ 6.47048727e-02 -2.89478861e-02 -2.60082297e-02 -5.14978357e-02\n",
      "  -9.49181467e-02 -1.81451976e-01]]\n",
      "Model: \"model\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_1 (InputLayer)         [(None, 11, 6)]           0         \n",
      "_________________________________________________________________\n",
      "lstm (LSTM)                  (None, 11, 64)            18176     \n",
      "_________________________________________________________________\n",
      "lstm_1 (LSTM)                (None, 11, 64)            33024     \n",
      "_________________________________________________________________\n",
      "lstm_2 (LSTM)                (None, 11, 6)             1704      \n",
      "=================================================================\n",
      "Total params: 52,904\n",
      "Trainable params: 52,904\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "../experiments/local-results/NAB/machine_temp/batch-32/NAB-machine_temp-48-12-6-fixedSigma-0.1/checkpoint/lstm/checkpoint\n",
      "LSTM model loaded.\n"
     ]
    }
   ],
   "source": [
    "# load LSTM model\n",
    "lstm_model = lstmKerasModel(data)\n",
    "lstm_model.produce_embeddings(config, model_vae, data, sess)\n",
    "lstm_nn_model = lstm_model.create_lstm_model(config)\n",
    "lstm_nn_model.summary()   # Display the model's architecture\n",
    "\n",
    "# checkpoint path\n",
    "checkpoint_path = config['checkpoint_dir_lstm'] + \"cp.ckpt\"\n",
    "checkpoint_dir = os.path.dirname(checkpoint_path)\n",
    "# Create a callback that saves the model's weights\n",
    "cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path,\n",
    "                                                 save_weights_only=True,\n",
    "                                                 verbose=1)\n",
    "# load weights if possible\n",
    "lstm_model.load_model(lstm_nn_model, config, checkpoint_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ERROR! Session/line number was not unique in database. History logging moved to new session 18\n",
      "The given sequence has 5000 samples\n",
      "(4953, 48, 1)\n",
      "(4425, 12, 48, 1)\n"
     ]
    }
   ],
   "source": [
    "# load normalised time series\n",
    "save_dir = '../datasets/NAB-known-anomaly/'\n",
    "dataset = config['dataset']\n",
    "filename = '{}.npz'.format(dataset)\n",
    "result = dict(np.load(save_dir+filename, allow_pickle=True))\n",
    "if dataset == 'machine_temp':\n",
    "    result['test'] = result['test'][0]\n",
    "    result['idx_anomaly_test'] = result['idx_anomaly_test'][0]\n",
    "    result['t_test'] = result['t_test'][0]\n",
    "\n",
    "# slice into rolling windows and rolling sequences\n",
    "def slice_rolling_windows_and_sequences(config, time_seq):\n",
    "    n_sample = len(time_seq)\n",
    "    print(\"The given sequence has {} samples\".format(n_sample))\n",
    "    n_vae_win = n_sample - config['l_win'] + 1\n",
    "    rolling_windows = np.zeros((n_vae_win, config['l_win']))\n",
    "    for i in range(n_vae_win):\n",
    "        rolling_windows[i] = time_seq[i:i + config['l_win']]\n",
    "        sample_m = np.mean(rolling_windows, axis=1)\n",
    "        sample_std = np.std(rolling_windows, axis=1)\n",
    "\n",
    "        n_lstm_seq = n_sample - config['l_seq']*config['l_win']+1\n",
    "        lstm_seq = np.zeros((n_lstm_seq, config['l_seq'], config['l_win']))\n",
    "    for i in range(n_lstm_seq):\n",
    "        cur_seq = time_seq[i:i+config['l_seq']*config['l_win']]\n",
    "        for j in range(config['l_seq']):\n",
    "            lstm_seq[i,j] = cur_seq[config['l_win']*j:config['l_win']*(j+1)]\n",
    "    \n",
    "    return rolling_windows, lstm_seq, sample_m, sample_std\n",
    "\n",
    "test_windows, test_seq, test_sample_m, test_sample_std = slice_rolling_windows_and_sequences(config, result['test'])\n",
    "test_windows = np.expand_dims(test_windows, -1)\n",
    "test_seq = np.expand_dims(test_seq, -1)\n",
    "print(test_windows.shape)\n",
    "print(test_seq.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ERROR:root:Internal Python error in the inspect module.\n",
      "Below is the traceback from this internal error.\n",
      "\n",
      "ERROR:root:Internal Python error in the inspect module.\n",
      "Below is the traceback from this internal error.\n",
      "\n",
      "ERROR:root:Internal Python error in the inspect module.\n",
      "Below is the traceback from this internal error.\n",
      "\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3441, in run_code\n",
      "    exec(code_obj, self.user_global_ns, self.user_ns)\n",
      "  File \"<ipython-input-8-090a6558de64>\", line 49, in <module>\n",
      "    val_vae_recons_error[i], val_vae_kl_error[i], val_vae_elbo_loss[i] = evaluate_vae_anomaly_metrics_for_a_window(data.val_set_vae['data'][i])\n",
      "  File \"<ipython-input-8-090a6558de64>\", line 4, in evaluate_vae_anomaly_metrics_for_a_window\n",
      "    feed_dict = {model_vae.original_signal: np.expand_dims(test_win, 0),\n",
      "NameError: name 'model_vae' is not defined\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2061, in showtraceback\n",
      "    stb = value._render_traceback_()\n",
      "AttributeError: 'NameError' object has no attribute '_render_traceback_'\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1101, in get_records\n",
      "    return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 248, in wrapped\n",
      "    return f(*args, **kwargs)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 281, in _fixed_getinnerframes\n",
      "    records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 1502, in getinnerframes\n",
      "    frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 1460, in getframeinfo\n",
      "    filename = getsourcefile(frame) or getfile(frame)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 696, in getsourcefile\n",
      "    if getattr(getmodule(object, filename), '__loader__', None) is not None:\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 733, in getmodule\n",
      "    if ismodule(module) and hasattr(module, '__file__'):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 50, in __getattr__\n",
      "    module = self._load()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 44, in _load\n",
      "    module = _importlib.import_module(self.__name__)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/importlib/__init__.py\", line 127, in import_module\n",
      "    return _bootstrap._gcd_import(name[level:], package, level)\n",
      "  File \"<frozen importlib._bootstrap>\", line 1006, in _gcd_import\n",
      "  File \"<frozen importlib._bootstrap>\", line 983, in _find_and_load\n",
      "  File \"<frozen importlib._bootstrap>\", line 965, in _find_and_load_unlocked\n",
      "ModuleNotFoundError: No module named 'tensorflow_core.estimator'\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3441, in run_code\n",
      "    exec(code_obj, self.user_global_ns, self.user_ns)\n",
      "  File \"<ipython-input-8-090a6558de64>\", line 49, in <module>\n",
      "    val_vae_recons_error[i], val_vae_kl_error[i], val_vae_elbo_loss[i] = evaluate_vae_anomaly_metrics_for_a_window(data.val_set_vae['data'][i])\n",
      "  File \"<ipython-input-8-090a6558de64>\", line 4, in evaluate_vae_anomaly_metrics_for_a_window\n",
      "    feed_dict = {model_vae.original_signal: np.expand_dims(test_win, 0),\n",
      "NameError: name 'model_vae' is not defined\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2061, in showtraceback\n",
      "    stb = value._render_traceback_()\n",
      "AttributeError: 'NameError' object has no attribute '_render_traceback_'\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3361, in run_ast_nodes\n",
      "    if (await self.run_code(code, result,  async_=asy)):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3458, in run_code\n",
      "    self.showtraceback(running_compiled_code=True)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2064, in showtraceback\n",
      "    value, tb, tb_offset=tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1368, in structured_traceback\n",
      "    self, etype, value, tb, tb_offset, number_of_lines_of_context)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1268, in structured_traceback\n",
      "    self, etype, value, tb, tb_offset, number_of_lines_of_context\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1125, in structured_traceback\n",
      "    tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1082, in format_exception_as_a_whole\n",
      "    last_unique, recursion_repeat = find_recursion(orig_etype, evalue, records)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 382, in find_recursion\n",
      "    return len(records), 0\n",
      "TypeError: object of type 'NoneType' has no len()\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2061, in showtraceback\n",
      "    stb = value._render_traceback_()\n",
      "AttributeError: 'TypeError' object has no attribute '_render_traceback_'\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1101, in get_records\n",
      "    return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 248, in wrapped\n",
      "    return f(*args, **kwargs)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 281, in _fixed_getinnerframes\n",
      "    records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 1502, in getinnerframes\n",
      "    frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 1460, in getframeinfo\n",
      "    filename = getsourcefile(frame) or getfile(frame)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 696, in getsourcefile\n",
      "    if getattr(getmodule(object, filename), '__loader__', None) is not None:\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 733, in getmodule\n",
      "    if ismodule(module) and hasattr(module, '__file__'):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 50, in __getattr__\n",
      "    module = self._load()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 44, in _load\n",
      "    module = _importlib.import_module(self.__name__)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/importlib/__init__.py\", line 127, in import_module\n",
      "    return _bootstrap._gcd_import(name[level:], package, level)\n",
      "  File \"<frozen importlib._bootstrap>\", line 1006, in _gcd_import\n",
      "  File \"<frozen importlib._bootstrap>\", line 983, in _find_and_load\n",
      "  File \"<frozen importlib._bootstrap>\", line 965, in _find_and_load_unlocked\n",
      "ModuleNotFoundError: No module named 'tensorflow_core.estimator'\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3441, in run_code\n",
      "    exec(code_obj, self.user_global_ns, self.user_ns)\n",
      "  File \"<ipython-input-8-090a6558de64>\", line 49, in <module>\n",
      "    val_vae_recons_error[i], val_vae_kl_error[i], val_vae_elbo_loss[i] = evaluate_vae_anomaly_metrics_for_a_window(data.val_set_vae['data'][i])\n",
      "  File \"<ipython-input-8-090a6558de64>\", line 4, in evaluate_vae_anomaly_metrics_for_a_window\n",
      "    feed_dict = {model_vae.original_signal: np.expand_dims(test_win, 0),\n",
      "NameError: name 'model_vae' is not defined\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2061, in showtraceback\n",
      "    stb = value._render_traceback_()\n",
      "AttributeError: 'NameError' object has no attribute '_render_traceback_'\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3361, in run_ast_nodes\n",
      "    if (await self.run_code(code, result,  async_=asy)):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3458, in run_code\n",
      "    self.showtraceback(running_compiled_code=True)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2064, in showtraceback\n",
      "    value, tb, tb_offset=tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1368, in structured_traceback\n",
      "    self, etype, value, tb, tb_offset, number_of_lines_of_context)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1268, in structured_traceback\n",
      "    self, etype, value, tb, tb_offset, number_of_lines_of_context\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1125, in structured_traceback\n",
      "    tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1082, in format_exception_as_a_whole\n",
      "    last_unique, recursion_repeat = find_recursion(orig_etype, evalue, records)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 382, in find_recursion\n",
      "    return len(records), 0\n",
      "TypeError: object of type 'NoneType' has no len()\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2061, in showtraceback\n",
      "    stb = value._render_traceback_()\n",
      "AttributeError: 'TypeError' object has no attribute '_render_traceback_'\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2944, in _run_cell\n",
      "    return runner(coro)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/async_helpers.py\", line 68, in _pseudo_sync_runner\n",
      "    coro.send(None)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3170, in run_cell_async\n",
      "    interactivity=interactivity, compiler=compiler, result=result)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 3380, in run_ast_nodes\n",
      "    self.showtraceback()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2064, in showtraceback\n",
      "    value, tb, tb_offset=tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1368, in structured_traceback\n",
      "    self, etype, value, tb, tb_offset, number_of_lines_of_context)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1268, in structured_traceback\n",
      "    self, etype, value, tb, tb_offset, number_of_lines_of_context\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1143, in structured_traceback\n",
      "    chained_exceptions_tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1082, in format_exception_as_a_whole\n",
      "    last_unique, recursion_repeat = find_recursion(orig_etype, evalue, records)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 382, in find_recursion\n",
      "    return len(records), 0\n",
      "TypeError: object of type 'NoneType' has no len()\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/interactiveshell.py\", line 2061, in showtraceback\n",
      "    stb = value._render_traceback_()\n",
      "AttributeError: 'TypeError' object has no attribute '_render_traceback_'\n",
      "\n",
      "During handling of the above exception, another exception occurred:\n",
      "\n",
      "Traceback (most recent call last):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 1101, in get_records\n",
      "    return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 248, in wrapped\n",
      "    return f(*args, **kwargs)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/IPython/core/ultratb.py\", line 281, in _fixed_getinnerframes\n",
      "    records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 1502, in getinnerframes\n",
      "    frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 1460, in getframeinfo\n",
      "    filename = getsourcefile(frame) or getfile(frame)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 696, in getsourcefile\n",
      "    if getattr(getmodule(object, filename), '__loader__', None) is not None:\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/inspect.py\", line 733, in getmodule\n",
      "    if ismodule(module) and hasattr(module, '__file__'):\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 50, in __getattr__\n",
      "    module = self._load()\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/site-packages/tensorflow/__init__.py\", line 44, in _load\n",
      "    module = _importlib.import_module(self.__name__)\n",
      "  File \"/Users/ggraham/anaconda3/envs/vae/lib/python3.7/importlib/__init__.py\", line 127, in import_module\n",
      "    return _bootstrap._gcd_import(name[level:], package, level)\n",
      "  File \"<frozen importlib._bootstrap>\", line 1006, in _gcd_import\n",
      "  File \"<frozen importlib._bootstrap>\", line 983, in _find_and_load\n",
      "  File \"<frozen importlib._bootstrap>\", line 965, in _find_and_load_unlocked\n",
      "ModuleNotFoundError: No module named 'tensorflow_core.estimator'\n"
     ]
    }
   ],
   "source": [
    "# Evaluate ELBO and LSTM prediction error on the validation set\n",
    "# evaluate some anomaly detection metrics\n",
    "def evaluate_vae_anomaly_metrics_for_a_window(test_win):\n",
    "    feed_dict = {model_vae.original_signal: np.expand_dims(test_win, 0),\n",
    "                 model_vae.is_code_input: False,\n",
    "                 model_vae.code_input: np.zeros((1, config['code_size']))}\n",
    "\n",
    "    # VAE reconstruction error\n",
    "    recons_win_vae = np.squeeze(sess.run(model_vae.decoded, feed_dict=feed_dict))\n",
    "    test_vae_recons_error = np.sum(np.square(recons_win_vae - test_win))\n",
    "\n",
    "    # VAE latent embedding likelihood\n",
    "    vae_code_mean, vae_code_std = sess.run([model_vae.code_mean, model_vae.code_std_dev], feed_dict=feed_dict)\n",
    "    test_vae_kl = 0.5 * (np.sum(np.square(vae_code_mean)) + \\\n",
    "                            np.sum(np.square(vae_code_std)) - \\\n",
    "                            np.sum(np.log(np.square(vae_code_std))) - config['code_size'])\n",
    "\n",
    "    # VAE ELBO loss\n",
    "    sigma2 = 0.0005\n",
    "    input_dims = model_vae.input_dims\n",
    "    sigma_regularisor = input_dims/2. * np.log(sigma2) + input_dims * np.pi\n",
    "    test_vae_elbo = test_vae_recons_error/sigma2 + test_vae_kl + sigma_regularisor\n",
    "    return test_vae_recons_error, test_vae_kl, test_vae_elbo\n",
    "\n",
    "def evaluate_lstm_anomaly_metric_for_a_seq(test_seq):\n",
    "    feed_dict = {model_vae.original_signal: test_seq,\n",
    "                 model_vae.is_code_input: False,\n",
    "                 model_vae.code_input: np.zeros((1, config['code_size']))}\n",
    "    vae_embedding = np.squeeze(sess.run(model_vae.code_mean, feed_dict=feed_dict))\n",
    "    #print(vae_embedding.shape)\n",
    "    lstm_embedding = np.squeeze(lstm_nn_model.predict(np.expand_dims(vae_embedding[:config['l_seq']-1], 0), batch_size=1))\n",
    "    lstm_embedding_error = np.sum(np.square(vae_embedding[1:] - lstm_embedding))\n",
    "    \n",
    "    # LSTM prediction error\n",
    "    feed_dict_lstm = {model_vae.original_signal: np.zeros((config['l_seq'] - 1, config['l_win'], 1)),\n",
    "                      model_vae.is_code_input: True,\n",
    "                      model_vae.code_input: lstm_embedding}\n",
    "    recons_win_lstm = np.squeeze(sess.run(model_vae.decoded, feed_dict=feed_dict_lstm))\n",
    "    lstm_recons_error = np.sum(np.square(recons_win_lstm - np.squeeze(test_seq[1:])))\n",
    "    return lstm_recons_error, lstm_embedding_error\n",
    "\n",
    "n_val_vae = data.val_set_vae['data'].shape[0]\n",
    "n_val_lstm = data.val_set_lstm['data'].shape[0]\n",
    "\n",
    "val_vae_recons_error = np.zeros(n_val_vae)\n",
    "val_vae_kl_error = np.zeros(n_val_vae)\n",
    "val_vae_elbo_loss = np.zeros(n_val_vae)\n",
    "for i in range(n_val_vae):\n",
    "    val_vae_recons_error[i], val_vae_kl_error[i], val_vae_elbo_loss[i] = evaluate_vae_anomaly_metrics_for_a_window(data.val_set_vae['data'][i])\n",
    "\n",
    "val_lstm_recons_error, val_lstm_embedding_error = np.zeros(n_val_lstm), np.zeros(n_val_lstm)\n",
    "for i in range(n_val_lstm):\n",
    "    val_lstm_recons_error[i], val_lstm_embedding_error[i] = evaluate_lstm_anomaly_metric_for_a_seq(data.val_set_lstm['data'][i])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy.stats import norm\n",
    "def plot_histogram(test_anomaly_metric, n_bins, title, mean=None, std=None, xlim=None, saveplot=False):\n",
    "    test_anomaly_list = np.squeeze(np.ndarray.flatten(test_anomaly_metric))\n",
    "    his = plt.hist(test_anomaly_list, bins=n_bins, density=True)\n",
    "    if mean is None and std is None:\n",
    "        mean = np.mean(test_anomaly_list)\n",
    "        std = np.std(test_anomaly_list)\n",
    "        legend_label = None\n",
    "    else:\n",
    "        legend_label = 1\n",
    "    x_axis = np.arange(mean-5*std, mean+5*std, std/100)\n",
    "    plt.plot(x_axis, norm.pdf(x_axis,mean,std))\n",
    "    plt.title(title)\n",
    "    plt.xlabel('anomaly score value')\n",
    "    plt.ylabel('probability density')\n",
    "    if xlim is not None:\n",
    "        plt.xlim(0, xlim)\n",
    "    else:\n",
    "        plt.xlim(0, np.amax(test_anomaly_list))\n",
    "    if legend_label is None:\n",
    "        plt.legend(('Fitted Gaussian', 'histogram'))\n",
    "    else:\n",
    "        plt.legend(('normal data distribution','test data distribution (contain anomalies)'))\n",
    "    if saveplot:\n",
    "        savefig(config['result_dir']+'reconstruction_error_histogram.pdf')\n",
    "    else:\n",
    "        plt.show()\n",
    "    threshold_25 = np.percentile(test_anomaly_list, 25)\n",
    "    threshold_75 = np.percentile(test_anomaly_list, 75)\n",
    "    threshold_1 = np.percentile(test_anomaly_list, 99)\n",
    "    idx_large_error = np.squeeze(np.argwhere(test_anomaly_metric > threshold_1))\n",
    "#     print(his[0][-20:])\n",
    "#     print(his[1][-20:])\n",
    "    print(\"25% percentile: {}\".format(threshold_25))\n",
    "    print(\"75% percentile: {}\".format(threshold_75))\n",
    "#     print(\"Median: {}\".format(np.median(test_anomaly_list)))\n",
    "#     print(\"Mean: {}\".format(np.mean(test_anomaly_list)))\n",
    "#     print(\"Std dev: {}\".format(np.std(test_anomaly_list)))\n",
    "    print(\"These windows scored the top 1% of anomaly metric ({}): \\n{}\".format(threshold_1, idx_large_error))\n",
    "    return mean, std"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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0fCoqalh5syZXHLJJQA8/vjjPP30hpuf33fffbzyyivNrqdHjx4F099++23OPPNMdt99dw488EAOOeQQ7r333pa9mGbIfY1bCg8KKbOXFtUy8IoHG9ZrrvlcO7bGzFrbdtttx+zZszdKGzhwICNHjgSygNajRw8OPfRQIAtoY8aMYciQIZtdd0Rw4oknMn78eO68M7uP6IIFC5gypdR7hrbcyJEjG17jlsI9NDOzVvb4448zZswYampquPHGG5k4cSIjRozgiSeeYMqUKVx66aWMGDGC1157jddee43Ro0dz4IEHcsQRRzB37lwA3njjDQ455BCGDRvGVVddVbCeqVOn0rlzZy688MKGtN12240vfelLANTU1HDEEUdwwAEHcMABBzT0FOvbV+/iiy/m1ltvBeCKK65gyJAhDB8+nK997WsA3HPPPey7777st99+fPKTn9ykjGeffZZDDjmE/fffn0MPPZR58+YBcOutt3LyySczevRoBg8ezGWXXdZah7gg99DMrDL84Qr4x0utW+ZHhsGx1zSa5YMPPmDEiBEADBo0aKPTfQMHDuTCCy+kR48eDcHhhBNOYMyYMZxyyikAjBo1ihtvvJHBgwczffp0vvjFLzJ16lS+/OUv8+///u+cc845XH/99QXrnjNnDgcccEDRtu2888488sgjdO3alfnz53PGGWc0OrfskiVLuPfee5k7dy6SWLZsGQBXX301Dz/8MP37929Iy7XPPvvw5JNP0rFjRx599FG+/vWv89vf/haA2bNn8/zzz9OlSxf23ntvvvSlL7Hrrrs2dkhbzAHNzGwzFDrlWKqVK1fy9NNPc+qppzakrVmzBoC//OUvDUHh7LPP5vLLL2+yvIsuuoinnnqKzp07M2PGDNauXcvFF1/M7Nmzqaqq4m9/+1uj+/fu3ZuuXbty3nnnMWbMmIYe2GGHHca5557Laaedxsknn7zJfrW1tYwfP5758+cjibVr1zZsGzVqFL179wZgyJAhLFiwwAHNzKxRTfSktkTr16+nT58+RQNiU0Pahw4d2hD0AK6//nrefffdhmtbEydOZJddduGFF15g/fr1dO3aFYCOHTuyfv36hv3qfwfWsWNHnn32WR577DEmT57Mddddx9SpU7nxxhuZPn06Dz74IAceeCCzZs3aqB3f+MY3+NSnPsW9995LTU0NRx11VMO2Ll26NCxXVVVRV1dXwpFpGV9DMzMro549e7JixYqC67169WLQoEHcc889QDbI44UXXgCyXtGkSZMAuOOOOwqWffTRR7N69WpuuOGGhrRVq1Y1LNfW1tKvXz86dOjA7bffzrp164DsOtsrr7zCmjVrWLZsGY899hiQ9Rhra2s57rjjmDhxYkNbXnvtNT7xiU9w9dVXs9NOO/Hmm29u1I7a2lr69+8P0HAtrj04oJmZldHxxx/Pvffey4gRI3jyyScZN24cP/jBD9h///157bXXuOOOO7j55pvZb7/9GDp0KPfffz8AP/7xj7n++usZNmwYixYtKli2JO677z6eeOIJBg0axEEHHcT48eOZMGECAF/84he57bbb2G+//Zg7dy7du3cHYNddd+W0005j33335bTTTmP//fcHYMWKFYwZM4bhw4dz+OGH86Mf/QiASy+9lGHDhrHvvvty6KGHst9++23Ujssuu4wrr7yS/fffv6w9sKYoItqt8m1Bl36Do9/4axvWPWzfrPW8+uqrfPzjH2/vZthmKvR3lDQrIpr1uwD30MzMrCI4oJmZWUVwQDMzs4rggGZmZhXBAc3MzCpCWQOapNGS5kmqlnRFge1dJN2Vtk+XNDBn25UpfZ6kY5oqU9KgVEZ1KrNzY3VI6itpmqSVkq7LKaenpNk5j3clXZu2nStpcc62f239o2ZmZi1RtplCJFUB1wOfARYCMyRNiYjc+yacByyNiD0ljQMmAKdLGgKMA4YCHwUelbRX2qdYmROAiRExSdKNqewbitUBrAa+AeybHgBExApgRM7rmAX8LqfNd0XExa1wiMysleXe2aI1lPIzm5qaGsaMGcPLL7+8Ufo3v/lNPvnJT/LpT3+64H733Xcfe+21V6vMum+ZcvbQDgKqI+L1iPgQmASMzcszFrgtLU8GRimb62UsMCki1kTEG0B1Kq9gmWmfo1MZpDJPbKyOiHg/Ip4iC2wFpSC6M/Bkyw6BmW2rrr766qLBDFp+X7RC2vPHzFuScga0/kDu/CgLU1rBPBFRB9QCfRvZt1h6X2BZKiO/rmJ1lGIcWY8s99fnn5f0oqTJkgrOsCnpAkkzJc1ct6q2xKrMbGu1bt06zj//fIYOHcpnP/tZPvjgA84991wmT86+Y+ffkuXpp5/e5DYys2fP5uCDD2b48OGcdNJJLF26FIAZM2YwfPhwRowYwaWXXsq++2YnlG699VZOOOEEjj76aEaNGsXKlSsZNWoUBxxwAMOGDWuYcaSmpoZ99tmHc889l7322ouzzjqLRx99lMMOO4zBgwfz7LPPts9BKwMPCmncOOA3OesPAAMjYjjwCBt6fhuJiJsiYmREjKzq1rsNmmlm7Wn+/PlcdNFFzJkzhz59+mw0YXD9LVnmzJnDiy++yFVXXcWhhx7KCSecwA9+8ANmz57NHnvswTnnnMOECRN48cUXGTZsGN/+9rcB+MIXvsDPf/7zhhnzcz333HNMnjyZJ554gq5du3Lvvffy3HPPMW3aNL761a9S/128urqar371q8ydO5e5c+dy55138tRTT/HDH/6Q733ve213oMqsnAFtEZDbgxmQ0grmkdQR6A0saWTfYulLgD6pjPy6itXRKEn7AR0jomFa6YhYEhFr0uovgQObKsfMKt+gQYMa7ol24IEHUlNT07At95Ysv/vd7+jWrdsm+9fW1rJs2TKOPPJIAMaPH8+f//xnli1bxooVKzjkkEMAOPPMMzfa7zOf+Qw77LADkE1s/PWvf53hw4fz6U9/mkWLFvH22283tG/YsGF06NCBoUOHMmrUKCQxbNiwjdq6tStnQJsBDE6jDzuT9Xby7ws+BRiflk8BpqbTe1OAcWmE4iBgMPBssTLTPtNSGaQy72+ijqacwca9MyT1y1k9AXi1hHLMrMI1douU+luynHLKKfz+979n9OjRrVZv/WTDkM3Iv3jxYmbNmsXs2bPZZZddGm4Lk9u+Dh06NKx36NChoq6/lW2UY0TUSboYeBioAm6JiDmSrgZmRsQU4GbgdknVwHtkAYqU727gFaAOuCgi1gEUKjNVeTkwSdJ3gOdT2RSrI5VVA/QCOks6EfhszijM04Dj8l7WJZJOSG16Dzh3Mw+TmVW4lStXsmrVKo477jgOO+wwdt99d2Dj28j07t2b7bffnieffJIjjjiC22+/nSOPPJI+ffrQs2dPpk+fzic+8YmG28kUUltby84770ynTp2YNm0aCxYsaJPXtyUp6w0+I+Ih4KG8tG/mLK8GTs3fL237LvDdUspM6a+TjYLMT2+sjoGNtH33AmlXAlcW28fM2teWeDeLFStWMHbsWFavXk1ENNySZdy4cZx//vn85Cc/YfLkydx2221ceOGFrFq1it13351f/epXANx8882c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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "25% percentile: 106197.46894158289\n",
      "75% percentile: 921958.8553457755\n",
      "These windows scored the top 1% of anomaly metric (19392298.91688778): \n",
      "[ 475  476  477  478  479  480  706  707  786  787 1014]\n"
     ]
    }
   ],
   "source": [
    "# Histogram of VAE ELBO loss - validation set\n",
    "vae_elbo_m, vae_elbo_std = plot_histogram(val_vae_elbo_loss, 100, \n",
    "                                          'VAE ELBO error distribution on the val set', \n",
    "                                          mean=None, std=None, xlim=None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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kZQC1APWlpD3VGC5ma0xs1zgFaBLXKJ3zlUL55xzDhMmTKBdu3Z88MEH9O3bl/vvv5/27duzbNkyXnjhBYYPH07btm1p1aoVr776KgAPPfQQw4YNo3Xr1qxeHf3TFZDExIkTee+992jWrBmdOnViwIAB3HfffQBce+21PPvss7Rt25bFixez9957A9C0aVMuvPBCjjrqKC688ELat28PwKZNm+jRowdt2rSha9euPPjggwDccssttG7dmqOOOoouXbrQtm3bneK49dZbuf3222nfvn25HFGURmbx+TMeVgRfAt0IfvRnAf3MbEHENoOB1mY2KOwcP9/MLpTUChhN0K9xIPAO0BzIAkYARxM0VY0EZpvZIyXFkpWVZYmcyGlPjxj8iMNVVosWLeLII49MdBhuDxX1PkqaY2ZFnu8bt6aqsM/iOmAKkAyMMLMFkoYQ/NhPAoYDo8LO758JzpAi3G4cQUd6HjDYzPKBGZLGA5+F6Z8TNkc555yrGHHt4zCzycDkqLQ7I5a3Ab2j84Xr7gHuKSL9L8BfyjdS55xzsfIhR5xzzpWJVxzOOefKxCsO55xzZeIVh3POuTKpUhcAOucqtz292DVaLKebZ2dn06NHD7744oud0u+8805OOOEETj311CLzTZw4kcMPP7xcRsmtabziiJNYv0CR2/k1Gc6VnyFDhpS4vjyHV8/LyyMlpeb8nHpTlXOuysvPz+eqq66iVatWnH766WzdupXLLruM8ePHA7sOVf7xxx/vMrz63LlzOfbYY2nTpg3nnXce69atA2DWrFm0adOGdu3accstt3DUUUcBwdAe5557LqeccgrdunVj8+bNdOvWjQ4dOtC6desdV6BnZ2fTokULLrvsMg4//HD69+/P1KlTOe6442jevDkzZ85MzIu2B7zicM5VeV999RWDBw9mwYIF1K9ff6eBBwuHKl+wYAHz58/nT3/6E126dOHcc8/l/vvvZ+7cuRx66KFceuml3HfffcyfP5/WrVtz9913A3D55ZfzxBNP7BjhNtJnn33G+PHjee+998jIyGDChAl89tlnvPvuu9x0000UjsyxdOlSbrrpJhYvXszixYsZPXo0H374IQ888AB///vfK+6FKidecTjnqrxmzZrtmJOjY8eOZGdn71gXOVT5K6+8wl577bVL/g0bNrB+/XpOPPFEAAYMGMD777/P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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "25% percentile: 61.25464169658353\n",
      "75% percentile: 147.18842320844698\n",
      "These windows scored the top 1% of anomaly metric (424.59316111206067): \n",
      "[166 233 267 383 406 445 446 882 904 905]\n"
     ]
    }
   ],
   "source": [
    "# Histogram of LSTM reconstruction error - validation set \n",
    "#  --> to decide the anomaly detection threshold\n",
    "lstm_recons_m, lstm_recons_std = plot_histogram(val_lstm_recons_error, 100,  \n",
    "                                              'LSTM reconstruction error distribution on the val set', \n",
    "                                              mean=None, std=None, xlim=None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "All windows' reconstruction error is computed.\n",
      "The total number of windows is 4425\n"
     ]
    }
   ],
   "source": [
    "# Evaluate the anomaly metrics on the test windows and sequences\n",
    "n_test_lstm = test_seq.shape[0]\n",
    "\n",
    "test_lstm_recons_error, test_lstm_embedding_error = np.zeros(n_test_lstm), np.zeros(n_test_lstm)\n",
    "for i in range(n_test_lstm):\n",
    "    test_lstm_recons_error[i], test_lstm_embedding_error[i] = evaluate_lstm_anomaly_metric_for_a_seq(test_seq[i])\n",
    "print(\"All windows' reconstruction error is computed.\")\n",
    "print(\"The total number of windows is {}\".format(len(test_lstm_recons_error)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "25% percentile: 371.0070089488378\n",
      "75% percentile: 2058.7402439634097\n",
      "These windows scored the top 1% of anomaly metric (5820.887733515805): \n",
      "[3413 3415 3416 3417 3418 3459 3460 3461 3462 3463 3464 3465 3466 3504\n",
      " 3505 3506 3507 3508 3509 3510 3511 3512 3551 3552 3553 3554 3555 3556\n",
      " 3557 3558 3559 3560 3561 3562 3563 3564 3565 3579 3580 3581 3582 3603\n",
      " 3604 3605 3606]\n"
     ]
    },
    {
     "data": {
      "image/png": "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PvooJ598Mrfffjt33nknDz/8MAB79+4NNy+NGjWKzZs389lnnzF9+nTOPPNM/vOf//Dss8/Ss2dP5s+fT9euXbnnnnuoV68ehYWFDBgwgK+//prOnTtHLVN+fj6jR49m1qxZtGnThvPPPz+87eijj+bjjz+mSpUqvP/++9xyyy289tpr3HXXXeTm5vLYY48BsG3btqjp/F5//XWWLl3K4sWL+fnnn2nfvj2XXXZZsTTz589nzZo1LFy4EIAtW7ZQp04dHnvsMR588EF69OgRTlu/fn2+/NL7IfXOO+8Uy6d27dosWLCA559/nuuvv54334w9dfi9997Lgw8+GE4zZ86c8LYJEybQrVs3/vWvfzFr1iwuueQS5s+fD8A333zD7Nmz2b59O+3atePqq69O6t4CU3YqZ41j83eQUQVanGCBI821atWKrl27AnDssceSl5fH1q1b2bJlCyeffDIAI0eO5KOP9jdJ+r/IAc444wxEhE6dOnHEEUfQqVMnMjIy6NChA3l5eQC88sordO/enW7durFo0aK4/QfffPMNrVq1om3btogII0aMCG/bunUrw4YNo2PHjvz2t79l0aJFUfMIku6jjz7iggsuIDMzk8aNG9O/f/8D0rRu3ZqVK1dy3XXX8c4773DYYYfFLHfk++J3wQUXhB8/++yzmOkS+eSTT7j44osB6N+/Pxs3bmTbtm0ADB48mOzsbBo0aMDhhx/Ozz//XOLXMalVSWsceVC7GdRrBUvfLu/SVAwJagapkp2dHV7OzMwMN1XFU6NGjah5ZGRkFMsvIyODgoICVq1axYMPPsjcuXOpW7cuo0aNKvHd8r///e/p168fr7/+Onl5efTt2/eg0iVSt25dvvrqK2bOnMmTTz7JK6+8wnPPPRc1beT74ue/ZDO0XKVKFYqKigAoKipi7969JSpjSORneSj1QZniKmeNY/uPULsp1DwCdm2EosLyLpEpRbVr16Zu3bp8/PHHALzwwgvh2kdJbNu2jRo1alC7dm1+/vln3n47/o+No48+mry8PL799lsAXn755fC2rVu30qRJE8DroA6pVasW27dvT5jO75e//CVTp06lsLCQH3/8kdmzZx+QZsOGDRQVFXHOOedw9913h5uiIl8vkalTp4Yf+/TpA3hXW82bNw+A6dOns2/fvoR5n3TSSbz00kuA14TVoEGDuLUg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2rdvH3O+jn379jFmzBjmz59PZmYmy5Yti5puwIAB1K7t3cvVvn17vvvuO5o1a1YszezZs7n//vvZtWsXmzZtokOHDpxxxhkAnH322cD+eWBC7891110HeKMkt2jRIvz6/fr1o1atWtSqVYvatWuH8+nUqVO45rZw4UJuu+02tmzZwo4dOxg4cGDUsgMsXbqUhQsXcuqppwJeE2WjRo0Ab6DJiy66iKFDhzJ06NDwPocffnjcvrGgUtlU1QtYoaorVXUvMAUYEpFmCBAaHnMaMEC8wf6HAFNUdY+qrsKrefQCEJGmwGDg2RKVas92r48jJNurnrM3+BDT5tCkqowfP5758+czf/58VqxYweWXX85RRx3Fl19+SadOnbjtttu46667SvwaoXkyFi5cyBtvvBFzXo6g6RIJzafRt29fnnzySa644oqYadNhPg3/ax7sa2iMAVofeughjjjiCL766ityc3NjHlei8ubn53PNNdcwbdo0FixYwOjRo4t9jqH9g84dEjnXi38emND+o0aN4rHHHmPBggVMmDAh7nmjqnTo0CF8vi9YsIB3330XgLfeeotrr72WL7/8kp49e4bzz8/Pp1q1agnLmkgqf2I3AX7wPV8NHBcrjaoWiMhWoL5b/9+IfZu45YeBmwDft38S9myD+kfuf17VBY49O6Ba3RJlaTxlffls5LwPAwcO5Pe//z0XXXQRNWvWZM2aNWRlZVFQUEC9evUYMWIEderU4dlnny22f+gXb4h/Po0jjzwypfNpPPXUU4wcOZJ169Yxe/ZsLrzwwmJpNmzYQNWqVTnnnHNo165deDbBksynMW7cuKjzaZx33nlJz6fx+9//vkTzabRr146VK1fSpk0b+vfvz1lnncUNN9xA/fr12bRpE/Xq1eP4449nypQpXHzxxbz00ksJa4jR3vumTZuSkZHB5MmTKSws2Xw7oS/tBg0asGPHDqZNm5bwqqzQ+9O/f3+WLVvG999/T7t27cLzoCSyfft2GjVqxL59+3jppZfC51A07dq1Y/369Xz22Wf06dOHffv2sWzZMo455hh++OEH+vXrx4knnsiUKVPYsWMHderUYdmyZeF+noORVm0zInI6sE5V54lI3wRprwSuBGjevPn+DZGd4+Eax45SLq1Jtfr163PCCSfQsWNHTjvtNB544AGWLFkS/mKsWbMmL774IitWrODGG28kIyODrKwsnnjiCQCuvPJKBg0aROPGjYtNgmTzaaRuPo3BgwczZ84c2rRpQ4cOHbj11ls5+eSTyczMpFu3bkyaNIlHH32USy+9lAceeICGDRsmnEslsrzXXHMN55xzDs8//3yx40pWnTp1GD16NB07duQXv/gFPXv2TLjPNddcw9VXX02nTp2oUqUKkyZNKlbTSOQPf/gDxx13HA0bNuS4446L++OgatWqTJs2jbFjx7J161YKCgq4/vrrOeqooxgxYgRbt25FVRk7dix16njj8s2ePTt8Dh2UWJ0fB/sH9AFm+p6PB8ZHpJkJ9HHLVYANgESmDaUD/oRX+8gDfgJ2AS8mKkuxzvE/HK4687b9z5fOVJ1wmOr3XxzQOWTii9ahZkw8a9euLdbZb8rOTz/9pP3794+6LdnO8VT2ccwF2opIKxGpitfZPT0izXRgpFs+F5jlCjwdGC4i2SLSCmgLfKGq41W1qaq2dPnNUtURgUtUsBcK8mPUOKyPw5hUa9SoEaNHjy7VGwBNMN9//z1//vOfSyWvlDVVqddnMQavtpAJPKeqi0TkLrxINh34O/CCiKwANuEFA1y6V4DFQAFwre6/oqrk9rjg4L+qyt/HYZKmqsU6Xo1J5LzzzivvIlRKsZratASzwKa0j0NVZwAzItbd7lvOB4bF2Pce4J44ec8B5iRVoD3uV06xq6rcsvVxJC0nJ4eNGzdSv359Cx7GpCFVZePGjeTk5CS1X1p1jh+0eIHDahxJa9q0KatXr2b9eptB0Zh0lZOTc8D9NolUssDhmqr8gaOq9XGUVFZWFq1atSrvYhhjyljlGqtqrxv3JRQsAKpkQ0YVq3EYY0xAlStw7NvpPYaGVAdvlNyqNa2PwxhjAqpkgWO395gVcct9di2rcRhjTECVLHC4pip/jQNcjcP6OIwxJojKFTjCfRwRgSO7ptU4jDEmoMoVOEJNVVUimqqsj8MYYwKrZIFjF2RWPXDejao19tdGjDHGxFX5Akdk/wZ460JXXBljjInLAgd4fR6hZixjjDFxVbLAsfvAS3HBCybWVGWMMYFUrsCxd9eBV1SBa6raBSUYJdIYYyqbyhU44jVVaSEUHtycy8YYUxlUssARp6kKYK91kBtjTCKVLHDsgqwo8w+HAod1kBtjTEKVMHBEqXFUrbF/uzHGmLgqWeCI1VTl1llTlTHGJFS5AsfeXftrF37WVGWMMYFVrsCRsKnKahzGGJNI5QkchfugaF+MIUdCTVXWx2GMMYlUnsARay4O/zprqjLGmIQqUeCIMfsf+AKHNVUZY0wilShwxKlxVLUahzHGBFV5Akes2f/Ad+e49XEYY0wilSdwhJuqogSOzCzIyLKmKmOMCaASBY5QU1WUPg6wOTmMMSaghIFDROaJyLUiUrcsCpQy8fo4wBvDyu4cN8aYhILUOM4HGgNzRWSKiAwUEUlxuUpfwsBRzcaqMsaYABIGDlVdoaq3AkcB/wCeA74TkTtFpF6qC1hq4l2OCyz5bSsAABytSURBVNZUZYwxAQXq4xCRzsCfgQeA14BhwDZgVuqKVsrCV1VFGasKrKnKGGMCqpIogYjMA7YAfwfGqeoet+lzETkhlYUrVYk6x7Oqwd4dZVceY4xJUwkDBzBMVVf6V4hIK1Vdpapnp6hcpS/UDFUlVlNVDdi5vuzKY4wxaSpIU9W0gOsObft2ekEjI8YhZ1W3pipjjAkgZo1DRI4GOgC1RcRfszgMyEl1wUpdrEmcQrKqWee4McYEEK+pqh1wOlAHOMO3fjswOpWFSol9u2NfigteU5VdjmuMMQnFDByq+m/g3yLSR1U/K8MypcbendHHqQqx+ziMMSaQeE1VN6nq/cCFInJB5HZVHZvSkpW2hE1V1aGoAAr2QpWqZVcuY4xJM/E6x5e4x1xgXpS/hERkkIgsFZEVIjIuyvZsEZnqtn8uIi1928a79UtFZKBblyMiX4jIVyKySETuDHSU4KaNjVfjqL4/nTHGmJjiNVW94R4nh9aJSAZQU1W3JcpYRDKBx4FTgdV4Q5ZMV9XFvmSXA5tVtY2IDAfuA84XkfbAcLzO+cbA+yJyFLAH6K+qO0QkC/hERN5W1f8mPNJ9uyCnTuztodrIvt1QLU46Y4yp5IIMcvgPETlMRGoAC4HFInJjgLx7AStUdaWq7gWmAEMi0gwBQoFpGjDAjYM1BJiiqntUdRWwAuilntBdelnuTwOUJXFTVeiOcqtxGGNMXEHu42jvahhDgbeBVsDFAfZrAvzge77arYuaRlULgK1A/Xj7ikimiMwH1gHvqern0V5cRK4UkVwRyV2/fn2ApqpQjcMChzHGxBMkcGS5ZqGhwHRV3UfQX/kpoKqFqtoVaAr0EpGOMdI9rao9VLVHw4YNvbGqEl1VBXYvhzHGJBAkcDwF5AE1gI9EpAXeAIeJrAGa+Z43deuiphGRKkBtYGOQfVV1CzAbGBSgLInv48hyTVV297gxxsQVZFj1R1S1iar+2vUxfAf0C5D3XKCtiLQSkap4nd3TI9JMB0a65XOBWaqqbv1wd9VVK6At8IWINBSROgAiUg2v4/2bAGVxTVUJ7hwHq3EYY0wCQUbHzQbOAVpGpL8r3n6qWiAiY4CZQCbwnKouEpG7gFxVnY434u4LIrIC2IQXXHDpXgEWAwXAtapaKCKNgMnuiq0M4BVVfTPhUaqCFtrluMYYUwqCjI77b7xO63l4l8MGpqozgBkR6273Lefjze0Rbd97gHsi1n0NdEumDN6ORd5j3CFHLHAYY0wQQQJHU1UN1o9wqAoHjgR3joM1VRljTAJBOsc/FZFOKS9JKoUCR6zZ/8AuxzXGmICC1DhOBEaJyCq8pioBVFU7p7RkpSlIjaNKDiD7p5g1xhgTVZDAcVrKS5FqQQKHiNdcZTUOY4yJK8jluN/h3VPR3y3vCrLfISUcOOI0VYFN5mSMMQEEGatqAnAzMN6tygJeTGWhSl2QGgd4V1ZZjcMYY+IKUnM4CzgT2AmgqmuBWqksVKkLcjluaLsFDmOMiStI4Njr7uZWADdKbnoJX1WVKHBYU5UxxiQSJHC8IiJPAXVEZDTwPvBMaotVygLXOGrYVVXGGJNAwquqVPVBETkVb2DDdsDtqvpeyktWmoL2cWRVg10bU18eY4xJY0Eux8UFivQKFn5aBIi7VyMOa6oyxpiEYgYOEdlOnHk3VPWwlJQoFbTIa6YSiZ+uag3YZ8OqG2NMPPHmHK8FICJ/AH4EXsC7a/wioFGZlK60aBFk1UyczmocxhiTUJDO8TNV9W+qul1Vt6nqExw4d/ihTYsSX1EFXq3EOseNMSauIIFjp4hc5Ob6zhCRi3D3dKSNUFNVIqH7OLTcZsY1xphDXpDAcSFwHvCz+xvm1qUPLUp8RRW4NAoFSU07YowxlUqQy3HzSLemqUhFRYnHqYLiswBmJbgCyxhjKqn0GqywpILWOGwWQGOMSajyBI6gneNgV1YZY0wcQUbHzSyLgqRU4M5xVyvZm159/8YYU5aC1DiWi8gDItI+5aVJlcCd41bjMMaYRIIEji7AMuBZEfmviFwpIulz1zh4l9cGvRwXrI/DGGPiCDID4HZVfUZVj8eb0GkC8KOITBaRNikvYWlItqnKAocxxsQUqI9DRM4UkdeBh4E/A62BN4AZKS5fKVFrqjLGmFISZHTc5cBs4AFV/dS3fpqI/DI1xUqBqgHu47DLcY0xJqEggeMSVf3Ev0JETlDV/6jq2BSVq/QlGlIdfFdVWeAwxphYgnSOPxJl3aOlXZCUC1LjsM5xY4xJKN58HH2A44GGInKDb9NhQPrd2xGkczyzKkim9XEYY0wc8ZqqqgI1XZpavvXbgHNTWaiUCNI5LrJ/hFxjjDFRxZvI6UPgQxGZpKrflWGZUiNIUxW4yZwscBhjTCzxmqoeVtXrgcdE5IAJKlT1zJSWrLQFaaoC78oqa6oyxpiY4jVVveAeHyyLgqRckKYqcLMA2lhVxhgTS7ymqnnu8cOyK04KJdVUZTUOY4yJJV5T1QIg5hyqqto5JSVKlWRqHBY4jDEmpnhNVaeXWSnKQtA+jqzqsOOn1JbFGGPSWLymqvS/kipEBDKzgqW1pipjjIkr5p3jIvKJe9wuItsiH8uuiKVAkpjosGoNCxzGGBNHzG9UVT3RPdZS1cMiH4NkLiKDRGSpiKwQkXFRtmeLyFS3/XMRaenbNt6tXyoiA926ZiIyW0QWi8giEflNoKNMZhLDrGp2VZUxxsQRZJBDRKQ7cCJeZ/knqvq/APtkAo8DpwKrgbkiMl1VF/uSXQ5sVtU2IjIcuA843802OBzoADQG3heRo4AC4Heq+qWI1ALmich7EXlGK0yQw/RYU5UxxsQVZD6O24HJQH2gATBJRG4LkHcvYIWqrlTVvcAUYEhEmiEub4BpwAAREbd+iqruUdVVwAqgl6r+qKpfgjfBFLAEaJKwJMk0VWXVgILdUFQUfB9jjKlEgnyjXgT0VNUJqjoB6A1cHGC/JsAPvuerOfBLPpxGVQuArXgBKuG+rlmrG/B5tBd3U9zmikjuvoIkgkDost0Cq3UYY0w0QQLHWsA/mUU2sCY1xQlGRGoCrwHXq2rUjnpVfVpVe6hqj6yqVYNnbrMAGmNMXPFuAHwUr09jK7BIRN5zz08FvgiQ9xqgme95Uw4MOKE0q0WkClAb2BhvXxHJwgsaL6nqPwOUI7nOcZsF0Bhj4orXOZ7rHucBr/vWzwmY91ygrYi0wvvSHw5cGJFmOjAS+AxvqPZZqqoiMh34h4j8Ba9zvC3whev/+DuwRFX/ErAcSfZx2CyAxhgTT7wbACfH2haEqhaIyBhgJt7ET8+p6iIRuQvIVdXpeEHgBRFZAWzCCy64dK8Ai/GupLpWVQtF5ES8/pUFIjLfvdQtqjojbmGSChxW4zDGmHgSXo4rIm2BPwHt8fV1qGrrRPu6L/QZEetu9y3nA8Ni7HsPcE/Euk+AJK6tdUoUOKyPwxhjognyjToReALvl38/4HngxVQWqtRlWI3DGGNKS5Bv1Gqq+gEgqvqdqt4BDE5tsUpZsjcAggUOY4yJIcid43tEJANY7vos1uDNRZ4+SnRVlTVVGWNMNEFqHL8BqgNjgWPxOqdHprJQpa4kfRw2XpUxxkSVsMahqnMBXK1jrBvqI72U5HJcq3EYY0xUQcaq6uFmA/wa7zLYr0Tk2NQXrRTZ5bjGGFNqgvRxPAdco6ofA7h7KSYC6TN1bDKBIzMLMrIscBhjTAxBvlELQ0EDwvdSFKSuSCmQTOAAm3fcGGPiiDdWVXe3+KGIPAW8jDdW1fkEH3bk0JBs4Kha3TrHjTEmhnhNVX+OeD7Bt6wpKEvqJF3jsMmcjDEmlnhjVfUry4KklDVVGWNMqQlyVVVtEflLaFIkEfmziNQui8KVmhIFDmuqMsaYaIJ8oz4HbAfOc3/b8K6qSh/WVGWMMaUmyOW4R6rqOb7nd/qGNE8PyYxVBV6NY/em1JTFGGPSXJCf4rvdvRsAiMgJQMX+OV61uk3kZIwxMQSpcVwFPO/r19hMuo1VlSxrqjLGmJjiBg43PlU7Ve0iIocBqOq2MilZecqqbneOG2NMDHGbqlS1CLjJLW+rFEEDLHAYY0wcQfo43heR/xORZiJSL/SX8pKVp6zqULgXCtNrZBVjjCkLQfo4zneP1/rWKZBwzvG05Z8FMPOw8i2LMcYcYoLMx9GqLApySMl2Exzu3QE5FjiMMcYvYeAQkRzgGuBEvJrGx8CTqpqf4rKVn2wXLPbsKN9yGGPMIShIU9XzeHeOP+qeXwi8AAxLVaHKXVVX49iTfpMdGmNMqgUJHB1Vtb3v+WwRWZyqAh0Ssmt5j3stcBhjTKQgV1V9KSK9Q09E5DggN3VFOgRkW43DGGNiCVLjOBb4VES+d8+bA0vdPOSqqukzhWxQoRqH9XEYY8wBggSOQSkvxaGmaihwWI3DGGMiBbkc97uyKMghxfo4jDEmpiQnqqgkqmRDRhWrcRhjTBQWOKIR8Wod1sdhjDEHsMARS9VaVuMwxpgognSOVwgtx71V7HnevYPj75BdyxtyxBhjTDFW44gluxbsqRyjyBtjTDIqTY0jkr8GErX2kV0Tdtm848YYE8lqHLFYU5UxxkRlgSOWqjWtc9wYY6KwwBFL9mF2Oa4xxkSR0sAhIoNEZKmIrBCRcVG2Z4vIVLf9cxFp6ds23q1fKiIDfeufE5F1IrIwlWUnu6Z353hRUUpfxhhj0k3KAoeIZAKPA6cB7YELRKR9RLLLgc2q2gZ4CLjP7dseGA50wBsr628uP4BJlMX4WaFhR/btTPlLGWNMOklljaMXsEJVV6rqXmAKMCQizRBgslueBgwQEXHrp6jqHlVdBaxw+aGqHwGpv9zJJnMyxpioUhk4mgA/+J6vduuiplHVAmArUD/gvqmVbSPkGmNMNBW2c1xErhSRXBHJXb9+ffIZVKvjPe7eUroFM8aYNJfKwLEGaOZ73tSti5pGRKoAtYGNAfeNS1WfVtUeqtqjYcOGSRYdyKnrPeZb4DDGGL9UBo65QFsRaSUiVfE6u6dHpJkOjHTL5wKzVFXd+uHuqqtWQFvgixSW9UDhGsfmMn1ZY4w51KUscLg+izHATGAJ8IqqLhKRu0TkTJfs70B9EVkB3ACMc/suAl4BFgPvANeqaiGAiLwMfAa0E5HVInJ5Sg4gx5qqjDEmmpSOVaWqM4AZEetu9y3nA8Ni7HsPcE+U9ReUcjGjy6ntPVpTlTHGFFNhO8cPWmYV7+5xq3EYY0wxlXZ03EBy6sTs40h6fg9jjKkgrMYRT7Xa1lRljDERLHDEU62uNVUZY0wEa6qKJ6cObFgWKGnCiaGMMaaCsBpHPNVi93EYY0xlZYEjnpw61lRljDERLHDEU60OFO6BfbvLuyTGGHPIsMARTzU3XpU1VxljTJgFjniqN/Aed24o33IYY8whxK6qIs4VUTUP9x53rjsgnTHGVFZW44inhhuO3WocxhgTZoEjnlDg2LGufMthjDGHEAsc8WTXgsxs2FmCGQSNMaaCsj6OeES8fo6DCBw2GKIxpqKxwJFIjQZJBw7rRDfGVGTWVJVIjcOtj8MYY3wscCRSo6FdVWWMMT7WVJVIzcO9+ziKisq7JID1mRhjyp8FjkRqN4GigvBNgAfLhl83xqQ7CxwJXPr6T0ysCkP/OBVoU97FOYAFImNMWbPAkcBarQ9AY9nAfC2fwGFXaRljDiUWOBL4MRw4NpZ63lZbMMakIwscCWyjOtu1Gk0ktVdWlUantwUiY0xZsMtxExLWav2U1DiMMSYdWeAIYI02oLnYTYDGGAPWVHWAaB3RK7URx2csQihCyyjWWoe4MeZQZTWOAFZoE3JkH02sucoYYyxwBLGiqDEAbWRNOZfEGGPKnwWOAL5VL3AcKWvLuSTGGFP+LHAEsJnDWK+1OSbj+/IuijHGlDsLHAHNL2pDV1lR3sUwxphyZ1dVBfS/ojacmjWPw9jBNmqWd3ESindVlv/mQBtt1xwMu+m0crLAEdD/3DhV3TOWM6eoWzmX5uDYpb7GmINhgSOgL4vaskuz6Z8xP+0DRzz2C9IYk4gFjoD2UJWPijpzauY8JhSMLLMbAY2JJmhTpDGpYIEjCW8VHsegzLn0zfiK2RW41pEq6VSbORT7fsqyiTHWZxWvDKXx+abTOVKZWeBIwttFvfhJ6zKmyr+Ys7dLha91lPYXQVm+bpC8S5p/0PLFS5dOX5AH+xlC7GM8FPrbSvtHQmmfY/GU17mT0sAhIoOAvwKZwLOqem/E9mzgeeBYYCNwvqrmuW3jgcuBQmCsqs4MkmcqFVCFPxcM44Gsp7kmczqPFw4tq5c+pJXXP39pNNcELXtpp0uloAGrLB1soCzLQBu0tlXa51hJlNcPEFHV1GQskgksA04FVgNzgQtUdbEvzTVAZ1W9SkSGA2ep6vki0h54GegFNAbeB45yu8XNM5oePXrohlPuLKUjU/6a9ThDMj/lrcJevFrYlyVFzdlCTfaQBUgpvY4xJllBa4CVwcEGEhGZp6o9om1LZY2jF7BCVVe6QkwBhgD+L/khwB1ueRrwmIiIWz9FVfcAq0RkhcuPAHmmmHDDvqtZWdSI0VXeYnDmF+EtBZpBIZkUIShCbtFRXLJvfNkVzZhKrrIFh3hK0twVdJ9UBo4mwA++56uB42KlUdUCEdkK1Hfr/xuxbxO3nChPAETkSuBK93QP805fWIJjiOkG9xffeuD00nxZvwZAaqclLB92XOmjIh4TVLLjkvtipm8Ra0OF7RxX1aeBpwFEJDdWlStdVcRjAjuudFIRjwnsuIJI5WVBa4BmvudN3bqoaUSkClAbr5M81r5B8jTGGJNCqQwcc4G2ItJKRKoCw4HpEWmmAyPd8rnALPV666cDw0UkW0RaAW2BLwLmaYwxJoVS1lTl+izGADPxLp19TlUXichdQK6qTgf+DrzgOr834QUCXLpX8Dq9C4BrVbUQIFqeAYrzdCkf3qGgIh4T2HGlk4p4TGDHlVDKLsc1xhhTMVXsW5+NMcaUOgscxhhjklKhA4eIDBKRpSKyQkTGlXd5EhGR50RknYgs9K2rJyLvichy91jXrRcRecQd29ci0t23z0iXfrmIjIz2WmVFRJqJyGwRWSwii0TkN259uh9Xjoh8ISJfueO6061vJSKfu/JPdRdx4C70mOrWfy4iLX15jXfrl4rIwPI5ov1EJFNE/icib7rnFeGY8kRkgYjMF5Fcty6tz0FXnjoiMk1EvhGRJSLSp0yOS1Ur5B9e5/m3QGugKvAV0L68y5WgzL8EugMLfevuB8a55XHAfW7518DbeGOc9AY+d+vrASvdY123XLccj6kR0N0t18IbMqZ9BTguAWq65Szgc1feV4Dhbv2TwNVu+RrgSbc8HJjqltu7czMbaOXO2cxyPg9vAP4BvOmeV4RjygMaRKxL63PQlWkycIVbrgrUKYvjKrcDLoM3tA8w0/d8PDC+vMsVoNwtKR44lgKN3HIjYKlbfgpvnK5i6YALgKd864ulK+8/4N94Y41VmOMCqgNf4o1isAGoEnkO4l0J2MctV3HpJPK89Kcrp2NpCnwA9AfedGVM62NyZcjjwMCR1ucg3n1vq3AXOZXlcVXkpqpoQ540iZH2UHaEqv7oln8CjnDLsY7vkD1u15TRDe/Xedofl2vSmQ+sA97D+2W9RVULXBJ/GYsNrwP4h9c5lI7rYeAmoMg9r0/6HxOAAu+KyDzxhiOC9D8HW+GNazTRNS0+KyI1KIPjqsiBo8JR7+dAWl4/LSI1gdeA61V1m39buh6Xqhaqale8X+m9gKPLuUgHRUROB9ap6rzyLksKnKiq3YHTgGtF5Jf+jWl6DlbBa9p+QlW7ATvxmqbCUnVcFTlwVJThSX4WkUYA7nGdW582w7KISBZe0HhJVf/pVqf9cYWo6hZgNl4zTh3xhs+B4mVMdnid8nACcKaI5AFT8Jqr/kp6HxMAqrrGPa4DXscL9Ol+Dq4GVqvq5+75NLxAkvLjqsiBo6IMT+IflmUkXh9BaP0l7kqJ3sBWVz2dCfxKROq6qyl+5daVCxERvBEClqjqX3yb0v24GopIHbdcDa/fZgleADnXJYs8rmSG1ylzqjpeVZuqaku8/5dZqnoRaXxMACJSQ0RqhZbxzp2FpPk5qKo/AT+ISDu3agDeaBupP67y7LAqg86jX+NdxfMtcGt5lydAeV8GfgT24f2auByvzfgDYDnehFb1XFoBHnfHtgDo4cvnMmCF+7u0nI/pRLyq8tfAfPf36wpwXJ2B/7njWgjc7ta3xvuSXAG8CmS79Tnu+Qq3vbUvr1vd8S4FTivv89CVqS/7r6pK62Ny5f/K/S0KfRek+znoytMVyHXn4b/wropK+XHZkCPGGGOSUpGbqowxxqSABQ5jjDFJscBhjDEmKRY4jDHGJMUChzHGmKRY4DCmhERkjoj0KO9ylLaKelym9FjgMCYN+e7kNqbMWeAwaUdE/uUGq1vkG7AOEdkhIveIN0fGf0XkCLe+pYjMcnMQfCAizd36SSLyhEu7UkT6ijcnyhIRmeTL9wkRyRXfvBsR5blMRB72PR8tIg9FpMl0r7dQvHkhfuvWtxGR912ZvxSRI92dvQ/40p7v0vYVkY9FZDreHcKIyAjx5gWZLyJPiUhmxOsOEpFXfc/7yv55NuIeV+g99S2fG3pf3J3zr4nIXPd3QoKPzVQk5X3no/3ZX7J/7L8TthreXdv13XMFznDL9wO3ueU3gJFu+TLgX255Et6YTAIMAbYBnfB+UM0Duka8XiYwB+jsns8BegA18e7GzXLrPwU6RZT5WOA93/M67vFz4Cy3nIM3RPs5eKPtZuKNbPo93vDXffEGsmvl0h/jji30un8DLol43Spu/xru+RPAiCDH5ZZ3+PI6F5jklv+BN3AgQHO8IWXK/dywv7L5sxqHSUdjReQr4L94g7O1dev34s0hAd4Xf0u33Afviw7gBbxhUELeUO/bbwHws6ouUNUivKEpQvufJyJf4g0x0gFvoqIwVd0BzAJOF5Gj8b7IF0SUeSXQWkQeFZFBwDY3flITVX3d5ZOvqrtc+V5Wb/Tdn4EPgZ4uny9UdZVbHoAXkOaKN7z7ALzhNfxlKwDeAc5wzVuD2T92UdzjSuAU4DH3utOBw8QbAdlUAtZOatKKiPTF+9Lqo6q7RGQO3i91gH0uCAAUEuz83uMei3zLoedV3CB9/wf0VNXNrqkmhwM9C9wCfANMjNzo9u0CDASuAs4DfhOgfJF2+pYFmKyq4xPsMwUYA2wCclV1exLH5R+TyL89A+itqvnJHoBJf1bjMOmmNrDZBY2j8abATORTvNFeAS4CPk7i9Q7D+7Le6vpMTouWSL2hrZsBF+INVlmMiDQAMlT1NeA2vOl0twOrRWSoS5MtItVd+c53/SIN8aYUjja67AfAuSJyuNu/noi0iJLuQ7zhtkfjBZHAx4U3RPcxIpIBnOVb/y5wne/4usbY31RAVuMw6eYd4CoRWYI38up/A+xzHd4saTfizZh2adAXU9WvROR/eDWJH4D/xEn+Cl6/yOYo25q4MoR+rIVqCRcDT4nIXXijIg/Dmy+iD95orgrcpKo/uUDpL9tiEbkNb2a7DLf/tcB3EekKXYf4KNxw20kc1zi85r/1eKOwhpqjxgKPi8jXeN8jH+HVpEwlYKPjGlNK3JfzQ6r6QXmXxZhUsqYqYw6SiNQRkWXAbgsapjKwGocxxpikWI3DGGNMUixwGGOMSYoFDmOMMUmxwGGMMSYpFjiMMcYk5f8DSiNRzUrbOMcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Histogram of LSTM reconstruction error - test set \n",
    "#  --> to detect anomaly now\n",
    "_, _ = plot_histogram(test_lstm_recons_error, 100,\n",
    "                      'LSTM reconstruction error distribution on the test set', \n",
    "                      mean=lstm_recons_m, std=lstm_recons_std, xlim=None, saveplot=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(4425,)\n"
     ]
    }
   ],
   "source": [
    "# Produce the ground truth anomaly indices \n",
    "# if result['idx_split'][0] == 0:\n",
    "#     idx_anomaly_test = result['idx_anomaly_test']\n",
    "# else:\n",
    "#     idx_anomaly_test = result['idx_anomaly_test'][0]\n",
    "idx_anomaly_test = result['idx_anomaly_test']    \n",
    "anomaly_index_lstm = []\n",
    "test_labels_lstm = np.zeros(n_test_lstm)\n",
    "for i in range(len(idx_anomaly_test)):\n",
    "    idx_start = idx_anomaly_test[i]-(config['l_win']*config['l_seq']-1)\n",
    "    idx_end = idx_anomaly_test[i]+1\n",
    "    if idx_start < 0:\n",
    "        idx_start = 0\n",
    "    if idx_end > n_test_lstm:\n",
    "        idx_end = n_test_lstm\n",
    "    anomaly_index_lstm.append(np.arange(idx_start,idx_end))\n",
    "    test_labels_lstm[idx_start:idx_end] = 1\n",
    "    \n",
    "print(test_labels_lstm.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def return_anomaly_idx_by_threshold(test_anomaly_metric, threshold):\n",
    "    test_list = np.squeeze(np.ndarray.flatten(test_anomaly_metric))\n",
    "    idx_error = np.squeeze(np.argwhere(test_anomaly_metric > threshold))\n",
    "    \n",
    "    if len(idx_error.shape) == 0:\n",
    "        idx_error = np.expand_dims(idx_error, 0)\n",
    "    \n",
    "    return list(idx_error)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def augment_detected_idx(idx_detected_anomaly, anomaly_index):\n",
    "    n_anomaly = len(anomaly_index)\n",
    "    idx_detected_anomaly_extended = list(idx_detected_anomaly)\n",
    "    for i in range(n_anomaly):\n",
    "        #print(idx_detected_anomaly)\n",
    "        for j in idx_detected_anomaly:\n",
    "            if j in anomaly_index[i]:\n",
    "                in_original_detection = set(idx_detected_anomaly_extended)\n",
    "                currect_anomaly_win = set(anomaly_index[i])\n",
    "                idx_detected_anomaly_extended = idx_detected_anomaly_extended + list(currect_anomaly_win - in_original_detection)\n",
    "                #print(j)\n",
    "                break\n",
    "                \n",
    "    return list(np.sort(idx_detected_anomaly_extended))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "def count_TP_FP_FN(idx_detected_anomaly, anomaly_index, test_labels):\n",
    "    n_TP = 0\n",
    "    n_FP = 0\n",
    "    n_detection = len(idx_detected_anomaly)\n",
    "    for i in range(n_detection):\n",
    "        if test_labels[idx_detected_anomaly[i]] == 1:\n",
    "            n_TP = n_TP + 1\n",
    "        else:\n",
    "            n_FP = n_FP + 1\n",
    "    \n",
    "    idx_undetected = list(set(np.arange(len(test_labels)))- set(idx_detected_anomaly))\n",
    "    n_FN = 0\n",
    "    for i in idx_undetected:\n",
    "        if test_labels[i] == 1:\n",
    "            n_FN = n_FN + 1\n",
    "    \n",
    "    return n_TP, n_FP, n_FN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_precision_and_recall(idx_detected_anomaly, anomaly_index, test_labels):\n",
    "    # compute true positive\n",
    "    n_TP, n_FP, n_FN = count_TP_FP_FN(idx_detected_anomaly, anomaly_index, test_labels)\n",
    "    \n",
    "    if n_TP + n_FP == 0:\n",
    "        precision = 1\n",
    "    else:\n",
    "        precision = n_TP / (n_TP + n_FP)\n",
    "    recall = n_TP / (n_TP + n_FN)\n",
    "    if precision + recall == 0:\n",
    "        F1 = 0\n",
    "    else:\n",
    "        F1 = 2* (precision * recall)/(precision + recall)\n",
    "    \n",
    "    return precision, recall, F1, n_TP, n_FP, n_FN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_threshold = 200\n",
    "precision = np.zeros(n_threshold)\n",
    "recall = np.zeros(n_threshold)\n",
    "F1 = np.zeros(n_threshold)\n",
    "precision_aug = np.zeros(n_threshold)\n",
    "recall_aug = np.zeros(n_threshold)\n",
    "F1_aug = np.zeros(n_threshold)\n",
    "i = 0\n",
    "threshold_list = np.linspace(np.amin(test_lstm_recons_error), np.amax(test_lstm_recons_error), n_threshold, endpoint=True)\n",
    "threshold_list = np.flip(threshold_list)\n",
    "for threshold in threshold_list:\n",
    "    #print(threshold_list[i])\n",
    "    idx_detection_lstm = return_anomaly_idx_by_threshold(test_lstm_recons_error, threshold)\n",
    "    precision[i], recall[i], F1[i], _, _, _ = compute_precision_and_recall(idx_detection_lstm, \n",
    "                                                                           anomaly_index_lstm, \n",
    "                                                                           test_labels_lstm)\n",
    "    # augment the detection using the ground truth labels\n",
    "    # a method to discount the factor one anomaly appears in multiple consecutive windows\n",
    "    # introduced in \"Unsupervised anomaly detection via variational auto-encoder for seasonal kpis in web applications\"\n",
    "    idx_detection_lstm_augmented = augment_detected_idx(idx_detection_lstm, anomaly_index_lstm)\n",
    "    precision_aug[i], recall_aug[i], F1_aug[i], _, _, _ = compute_precision_and_recall(idx_detection_lstm_augmented, \n",
    "                                                                                       anomaly_index_lstm, \n",
    "                                                                                       test_labels_lstm)\n",
    "    i = i + 1\n",
    "    #print(precision, recall, F1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best F1 score is 0.6753698868581375\n",
      "Best threshold is 1874.4103585343955\n",
      "At this threshold, precision is 0.6771378708551483, recall is 0.6736111111111112\n",
      "Average precision is 0.688382840947445\n",
      "\n",
      "Augmented detection:\n",
      "Best F1 score is 0.9812606473594548\n",
      "Best threshold is 4399.116867614843\n",
      "At this threshold, precision is 0.9632107023411371, recall is 1.0\n",
      "Average precision is 0.9816053511705686\n"
     ]
    }
   ],
   "source": [
    "print(\"Best F1 score is {}\".format(np.amax(F1)))\n",
    "idx_best_threshold = np.squeeze(np.argwhere(F1 == np.amax(F1)))\n",
    "print(\"Best threshold is {}\".format(threshold_list[idx_best_threshold]))\n",
    "print(\"At this threshold, precision is {}, recall is {}\".format(precision[idx_best_threshold], recall[idx_best_threshold]))\n",
    "average_precision = np.sum(precision[1:] * (recall[1:] - recall[:-1]))\n",
    "print(\"Average precision is {}\".format(average_precision))\n",
    "\n",
    "print(\"\\nAugmented detection:\")\n",
    "print(\"Best F1 score is {}\".format(np.amax(F1_aug)))\n",
    "idx_best_threshold = np.squeeze(np.argwhere(F1_aug == np.amax(F1_aug)))\n",
    "print(\"Best threshold is {}\".format(threshold_list[idx_best_threshold]))\n",
    "print(\"At this threshold, precision is {}, recall is {}\".format(precision_aug[idx_best_threshold], \n",
    "                                                                recall_aug[idx_best_threshold]))\n",
    "\n",
    "average_precision_aug = np.sum(precision_aug[1:] * (recall_aug[1:] - recall_aug[:-1]))\n",
    "print(\"Average precision is {}\".format(average_precision_aug))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Threshold is 4399\n",
      "\n",
      "PR evaluation using augmented detection:\n",
      "Precision: 0.9632107023411371\n",
      "Recall: 1.0\n",
      "F1: 0.9812606473594548\n",
      "TP: 1152\n",
      "FP: 44\n",
      "FN: 0\n"
     ]
    }
   ],
   "source": [
    "# Now select a threshold\n",
    "threshold = 4399\n",
    "\n",
    "print(\"Threshold is {}\".format(threshold))\n",
    "idx_detection = return_anomaly_idx_by_threshold(test_lstm_recons_error, threshold)\n",
    "idx_detection_augmented = augment_detected_idx(idx_detection, anomaly_index_lstm)\n",
    "precision, recall, F1, n_TP, n_FP, n_FN = compute_precision_and_recall(idx_detection_augmented, \n",
    "                                                                       anomaly_index_lstm, \n",
    "                                                                       test_labels_lstm)\n",
    "print(\"\\nPR evaluation using augmented detection:\")\n",
    "print(\"Precision: {}\".format(precision))\n",
    "print(\"Recall: {}\".format(recall))\n",
    "print(\"F1: {}\".format(F1))\n",
    "print(\"TP: {}\".format(n_TP))\n",
    "print(\"FP: {}\".format(n_FP))\n",
    "print(\"FN: {}\".format(n_FN))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "def slice_detected_indices_into_seq(idx_detection, interval):\n",
    "    detected_seq = []\n",
    "    i = 0\n",
    "    while i < len(idx_detection):\n",
    "        if i == 0:\n",
    "            cur_seq = [idx_detection[i]]\n",
    "            i = i + 1\n",
    "        else:\n",
    "            if idx_detection[i] - idx_detection[i-1] > interval:\n",
    "                detected_seq.append(cur_seq)\n",
    "                cur_seq = [idx_detection[i]]\n",
    "            else:\n",
    "                cur_seq.append(idx_detection[i])\n",
    "                if i == len(idx_detection) - 1:\n",
    "                    detected_seq.append(cur_seq)\n",
    "            i = i + 1\n",
    "    \n",
    "    print(\"Detected {} sequences\".format(len(detected_seq)))\n",
    "    return detected_seq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_detected_anomalies(idx_detection, interval, dataset, result, detection_method, augmented_flag=1, y_scale=5, y_lim=None):\n",
    "    detected_seq = slice_detected_indices_into_seq(idx_detection, interval=interval)\n",
    "    t_test = result['t_test']\n",
    "    test = result['test']\n",
    "    idx_anomaly_test = result['idx_anomaly_test']\n",
    "        \n",
    "    # plot detected sequences\n",
    "    fig, axs = plt.subplots(1, 1, figsize=(18, 5), edgecolor='k')\n",
    "    fig.subplots_adjust(hspace=.4, wspace=.4)\n",
    "    axs.plot(t_test, test)\n",
    "    for j in range(len(idx_anomaly_test)):\n",
    "        if j == 0:\n",
    "            axs.plot(idx_anomaly_test[j] * np.ones(20), np.linspace(-y_scale, y_scale, 20), 'r--', label='true anomalies')\n",
    "        else:\n",
    "            axs.plot(idx_anomaly_test[j] * np.ones(20), np.linspace(-y_scale, y_scale, 20), 'r--')\n",
    "        \n",
    "    for i in range(len(detected_seq)):\n",
    "        for j in detected_seq[i]:\n",
    "            if j == detected_seq[0][0]:\n",
    "                axs.plot((j+interval*2) * np.ones(20), np.linspace(-y_scale, -0.8*y_scale, 20), 'g-', label='detected anomalies')\n",
    "            else:\n",
    "                axs.plot((j+interval*2) * np.ones(20), np.linspace(-y_scale, -0.8*y_scale, 20), 'g-')\n",
    "    \n",
    "    for j in range(len(idx_anomaly_test)):\n",
    "        axs.plot(idx_anomaly_test[j] * np.ones(20), np.linspace(-y_scale, y_scale, 20), 'r--')\n",
    "\n",
    "    for i in range(len(detected_seq)):\n",
    "        interval_x = np.asarray([detected_seq[i][0], detected_seq[i][-1]+interval*2])\n",
    "        interval_y = np.asarray([y_scale,y_scale])\n",
    "        if i == 0:\n",
    "            axs.fill_between(interval_x, interval_y, alpha=0.2, color='y', label='detected anomaly windows')\n",
    "        else:\n",
    "            axs.fill_between(interval_x, interval_y, alpha=0.2, color='y')\n",
    "        interval_y = np.asarray([-y_scale,-y_scale])\n",
    "        axs.fill_between(interval_x, interval_y, alpha=0.2, color='y')\n",
    "    axs.grid(True)\n",
    "    axs.set_xlim(0, len(t_test))\n",
    "    if y_lim is None:\n",
    "        axs.set_ylim(-y_scale, y_scale)\n",
    "    else:\n",
    "        axs.set_ylim(-y_scale, y_lim)\n",
    "    axs.set_xlabel(\"timestamp (every {})\".format(result['t_unit']))\n",
    "    axs.set_ylabel(\"normalised readings\")\n",
    "    axs.set_title(\"{} dataset test sequence\\n(normalised by train mean {:.4f} and std {:.4f})\\n Detection method: {}\".format(dataset, \n",
    "                                                                                        result['train_m'], \n",
    "                                                                                        result['train_std'],\n",
    "                                                                                        detection_method))\n",
    "    axs.legend()\n",
    "    savefig(config['result_dir']+'detected_anomalies_{}_aug_{}.pdf'.format(detection_method, augmented_flag))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Detected 2 sequences\n"
     ]
    },
    {
     "data": {
      "image/png": "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SLFnZtSoUYO0tLRC35eSFSIiIiIiIjFnSlRIiVBU16mSFSIiIhK1/S2bsL9lk1iHISJSJI6le15ycjJPP/1MrMModKtWraZp06YAzJ07l5tuuinGEUluNGeFiIiIRG33O0/HOgQRkSJzLN3zkpO3M2bMswwefP1B69LT04mPP/oeHRMSEkhISIh1GJIL9awQERERERE5xt199zBWrPiBNm06MHToPSQlTadr13O58MIBNGuWwKpVq2nRIjGr/KOPPsH9948EYMWKlfTseSFt23aia9dzWbJk6UH1z549lzPP7E5CQkc6dTqbpUu/BwX+76oAACAASURBVOCFFyZyySW/oWfPC2ncuAV33HFv1javvPIaLVu2pUWLRO68876s5VWq1Gbo0Hto3jyB887rzezZc+nevQcNGzZlypR3gaAHRdeu55KYeCaJiWfy+edfHhRTUlISvXv3BmDnzp1ce+21tG3bllatWvH2228D8N1339G2bVtatmxJ8+bNWbZs2ZE2tUTp6EuPiYiISKGpcPI5AOz8YVqMIxERKXzH0j3vgQdG8N13i5g37wsAkpKm8/XXC1iwYDYnn1yfVatW57rtDTfcyFNPPUHDhg2YNWsOQ4bcyrRpUw8o07jxaXz66YfEx8czbdon3HvvcF5//SUAFiz4hrlzZ1K2bFlOP70VQ4bcQKlSpbjrrmHMnj2DatWq0aNHX95+ewr9+vVh586dnHVWVx5+eCT9+1/OsGEj+OCDKSxatIRrr72ePn16UatWTT74YArlypVj2bLlXHHFNcyaNSPXYxg5ciTdu3dn7NixJCcn07ZtW8455xzGjBnDzTffzMCBA9m7dy/79+8/4raW6ChZISIiIlGzfemxDkFEpMjE8p4X173HQcv80ovxwdfDrl3E9b744PVXX4FffQVs3kzcgCsOWJfxv/cPOYbExDacfHL9PMukpqbyxRezuPzyK7OW7dmz56By27fv4Jprrmf58hWYGfv27cta1717N6pUCb5OtEmTxqxevYatW7fStWtnatasCcBvf3sZ06fPpF+/PpQpU4YePc4FoGnTMyhbtiylS5emWbMzWLVqDQD79u3jppv+zIIFCylVqhTff788z+P48MMPmTx5Mo888ggAaWlprFmzhg4dOjBy5EjWrVvHxRdfTMOGDfOsRwqOkhUiIiIiIiJykAoVKmT9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fWgYiIiIiERt34VnxzoEEZEio3ueSOwoWSEiIiJR2/Ov+2IdgohIkdE9TyR2isWcFSIiIlIy2LLV2LLVsQ5DRKRI6J4nEjvqWSEiIiJRq3DW1YDmrBCRY4PueSKxo54VIiIiIiIiIlKsKFkhIiIiIiIiIsWKkhUiIiIiIiJygPvvH8mjjz6RZ5m3357CokWLD6v+5ORknn76mUKJK5aSkpLo3bt3gdU3d+5cbrrppkPaZvjw4TzyyCMFFkOsaM4KERERERGRYmb79tns37+9wOorVaoKVaq0LbD6AN5++x169erB6ac3OeRtk5O3M2bMswwefH2BxnS0SUhIICEhIdZhxIR6VoiIiEjU9v22N/t+W3CfGImIFGexvOft37+d0qWPL7CfaBIfDzzwME2atKRLl3P5/vtlWctXrFhJz54X0rZtJ7p2PZclS5by+edfMmXKVO64417atOnAihUrcywHsHHjRvr3v5zWrdvTunV7Pv/8S+6+exgrVvxAmzYdGDr0HgAeeWQU7dt3oVWrdgwf/rd844o0ZcpUOnToRkJCR847rzcbN24Egp4Y1103mO7de9CwYVNGjx6Ttc1jjz1G06ZNadq0KaNGjQJg1apVNG7cmEGDBnHaaacxcOBApk2bxplnnknDhg2ZPXs2ALNnz6ZDhw60atWKjh07snTp0gPiycjIoGHDhmzatCnrdYMGDbJeZ2rWrBnJycm4OzVq1GD8+PEAXHXVVXz00UcH9NQYPnw41157Ld26deOUU07hn//8Z1Y9I0eO5LTTTqNTp04HxDJ//nzat29P8+bNueiii9i2bRs///wzbdq0AWDBggWYGWvWrAHg1FNPZdeuXbz++us0bdqUFi1a0KVLl9wumUKlnhUiIiIStT0P3xbrEEREisyxdM+bN+9rXnvtDebN+5z09HQSEzvRunUrAG644UaeeuoJGjZswKxZcxgy5FamTZtKnz496dWrB/37XwTAuef2yrHcLbfcTpcunXnzzVfYv38/qampPPDACL77bhHz5n0BwIcffszy5cv54otPcXcuvHAA06d/RoUKFXKNK1KnTh34/PNPMDOee24c//jHKB555EEAliz5no8/nkpKSgqnn96KIUP+xMKFC3n++eeZNWsW7k67du3o2rUr1apVY/ny5bz++uuMHTuWxMREXnrpJT777DMmT57MAw88wFtvvUXjxo2ZMWMG8fHxTJs2jbvvvps333wzK564uDiuuOIKXnzxRW655RamTZtGixYtqFmz5gFxn3nmmcycOZN69epxyimnMGPGDK666iq++OILnn76aebMmXNA+SVLlvDJJ5+QkpJCo0aNGDx4MAsXLuSVV15h/vz5pKen07p166xkxFVXXcXo0aPp2rUrw4YN4/7772fUqFGkpaWxY8cOZsyYQUJCAjNmzKBTp07UqlWL8uXLM2LECD744APq1q1LcnJyAV1lh0bJChEREYla3JxvAMhIbBbjSERECt+xdM/77LPP6devD+XLlwegd++eAKSmpvLFF7O4/PIrs8ru2bPnoO3zKvfJJ58ybtyzAJQqVYoqVaqwbduBD8AfffQxH330PxISOob17WT58hWkpKTmGFd269at5ze/uZoNGzawd+8+6tevl7WuZ8/zKVu2LGXLlqVWrZps3LiRzz77jIsuuogKFSoAcPHFFzNjxgz69u3LySefTLNmwTk/44wzOPvsszEzmjVrxqpVqwDYvn07V199NcuWLcPM2Ldv30ExXXvttfTr149bbrmFsWPHcs011xxUpnPnzkyfPp169eoxePBgnnnmGdavX0+1atWyYovUq1eviGOpxcaNG5kxYwYXXXRRVhv17ds3K8bk5GS6du0KwNVXX82ll14KQMeOHZk5cybTp0/n7rvv5v3338fd6dy5MxAkUQYNGsSAAQO4+OKLc2zzwqZkhYiIiESt/EU3ApC6Lim2gYiIFAHd84LhC1WrVsnqAXGk5XLj7txxx5+5/vrfHbD8iSeejGr7m2++jVtvvZE+fXqRlDSdESMeyFpXtmzZrN9LlSpFenp6nnVFlo+Li8t6HRcXl7Xtfffdx1lnncWkSZNYtWoV3bp1O6iek046idq1a/O///2P2bNn8+KLLx5UpkuXLjz55JOsWbOGkSNHMmnSJN54442spEFesUVzLLnp0qULM2bMYPXq1fTr14+///3vmBm9evUCYMyYMcyaNYt3332XNm3aMG/ePGrUqHFY+zpcmrNCRERERETkGNe585lMnvwOu3fvJiUlhXfffQ+AypUrU79+fd54479AkFRYsCDocVKpUkVSUlLzLde9ezfGjPkPAPv372f79u0HbAtw3nnn8PzzE0hNDZatX/8jP//8c65xZbdjxw7q1KkDwIQJL0VxvJ1566232LVrFzt37mTSpEm5Jghysn37durWrQvAuHHjci133XXXccUVV3DppZdSqlSpg9afdNJJbN68mWXLlnHKKafQqVMnHnnkkUOaJ6JLly689dZbWW00ZcoUAKpUqUK1atWYMWMGABMmTMjqZdG5c2cmTpxIw4YNiYuLo3r16kydOpVOnToBsGLFCtq1a8eIESOoWbMma9eujTqegqJkhYiIiIiIyDGudeuWXHppf1q37kCvXheTkNA6a92ECc8xdux4WrduT/PmCUye/A4AAwZcwqOPjiIhoSMrVqzMtdzjjz9MUtJ0WrZsS9u2nVi0aAk1atSgY8f2tGiRyNCh93DeeWfzm99cSqdO3WnZsi0DBlxBSkpqnnFFGjbsbi6//Eratu0UVQ+A1q1bM2jQINq2bUu7du247rrraNXq4LkwcjN06FDuuusuWrVqlWfvhr59+5KamprjEJBM7dq147TTTgOCJML69euzkgbRaN26NZdddhktWrTgggsuIDExMWvdCy+8wO23307z5s2ZP38+w4YNA6B+/fq4e1ZSpFOnTlStWpVq1aoBcPvtt9OsWTOaNm1Kx44dadGiRdTxFBRz9yLf6eFq1KiRZ59lVUR+kZSUlGMXNJFDsWXL+5QpUzP/giXQnDkbSUysHeswSrSKJ3YDju0u0UebvXs3UaNGD0DvI0fqaL5/Hqsi73mF/R6yZk08jRs3yHpdEr66tCRyTyc+vkqR7W/u3LnceuutWb0bjhaLFy+mSZMDv7LWzOa5e4F9z6rmrBARERERESlmlFgo+R566CGefvrpHOeqkPwpWSEiIiJR23vDZbEOQUSkyOieJ0fizjvv5M4774x1GCWWkhUiIiIStb33Do51CCIiRUb3PJHY0QSbIiIiErW4j2YS99HMWIchIlIkivae55Sk+QTl2FVU16l6VoiIiEjUyl9zD6AJNkXk2FCU97wyZZytW7dTvXoVzKzQ9ydyONydLVu2UK5cuULfl5IVIiIiIiIiMXb88Rls3vwzmzZtApSsKCzu+ylV6rhYh1GilStXjhNPPLHQ96NkhYiIiIiISIzFx8MJJ2TEOoyjXuTXNUvxpjkrRERERERERKRYUbJCRERERERERIoVDQMRERGRqO358zWxDkFEpMjonicSO0pWiIiISNT23Xp1rEMQESkyuueJxI6GgYiIiEjU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\n",
      "text/plain": [
       "<Figure size 1296x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_detected_anomalies(idx_detection_augmented, \n",
    "                        interval=config['l_win']*config['l_seq']/2, \n",
    "                        dataset=dataset, \n",
    "                        result=result, \n",
    "                        detection_method='lstm reconstruction error',\n",
    "                        augmented_flag=1,\n",
    "                        y_scale=5,\n",
    "                        y_lim=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
